remarks cref c# mocking moq

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?