tengo una clase¿Se burla de un método en una clase en lugar de utilizarlo con Moq?
public interface IMyInterface
{
string MethodA();
void MethodB();
}
public class MyClass : IMyInterface
{
public string MethodA()
{
// Do something important
}
public void MethodB()
{
string value = MethodA();
// Do something important
}
}
Quiero MethodB prueba de unidad, pero estoy teniendo problemas para pensar acerca de cómo puedo Mock MethodA
al mismo tiempo que pone en MethodB
usando Moq. Moq se burla de la interfaz, no de la clase, así que no puedo simplemente llamar al mock.Object.MethodB()
, ¿verdad?
¿Esto es posible? ¿Si es así, cómo?
Una observación: en realidad el uso de Moq u puede simular la clase, pero hay algunos requisitos en las clases. La clase no puede ser sellada. y el método que se burla debe marcarse como virtual. Tampoco puede ser un método estático. – Artiom