cref - remarks c#
¿Fingir un método del sujeto bajo prueba en Moq? (1)
Es, con una trampa! Debe asegurarse de que el método B
sea virtual y pueda ser anulado.
Luego, configure el simulacro para llamar a los métodos base siempre que no se proporcione una configuración. Luego configura B
, pero no configura A
Como A
no se configuró, se llamará a la implementación real.
var myClassMock = new Mock<MyClass>();
myClassMock.Setup(x => x.B()); //mock B
myClassMock.CallBase = true;
MyClass obj = myClassMock.Object;
obj.A(); // will call the actual implementation
obj.B(); // will call the mock implementation
Detrás de escena, Moq creará dinámicamente una clase que amplíe MyClass
y anule a B
Quiero probar el método A de mi clase, pero sin llamar al método real B, que normalmente es llamado por A. Eso es porque B tiene muchas interacciones externas que no quiero probar por ahora.
Podría crear burlas para todos los servicios llamados por B, pero eso es bastante trabajo. Preferiría solo burlarme de B y hacer que devuelva datos de muestra.
¿Es eso posible con el framework Moq?