2010-09-20 17 views
13

es legal MOQ una clase que no hereda una interfaz de este modo:Can MOQ Mock una clase

var mockIActionService = new Mock<IActionService>(); 
var mockValidAgeRule = new Mock<ValidAgeRule>(mockIActionService.Object); 

me inyecto la IService en ValidAgeRule que es sólo una clase simple con un método llamado "Excute" . Mi pregunta es cómo verificar que se ha llamado. Cuando intento:

mockValidAgeRule.Verify(x => x.Execute(app)); //Where App is a valid object 

¿Alguien sabe cómo hacerlo?

+0

Creo que olvidó incluir lo que sucede cuando intenta llamar a mockValidAgeRule.Verify(). Supongo que la prueba falla aunque esté seguro de que se ha llamado a Execute. –

Respuesta

20

Creo que necesita hacer que su método Execute sea virtual.

Según tengo entendido, Moq crea una subclase de su clase en este caso, y necesita anular su método para saber si se ha llamado.

+0

ya he hecho caso para hacerlo virtual –

Cuestiones relacionadas