2009-09-18 16 views
6

Estoy tratando de probar una clase bastante compleja usando Moq y me encuentro con un problema.moq - cómo se ha verificado el método no se ha llamado si la clase se traga excepciones

Estoy tratando de verificar que un método NO se llama, y ​​generalmente esto es fácil de hacer estableciendo MockBehavior.Strict, pero aquí la clase tiene su propio mecanismo de informe de error por lo que se traga la excepción lanzada por Moq .

.VerifyTodo método al final de la prueba también pasa bien, lo cual es realmente extraño. ¿Es esto un error en Moq? ¿Hay alguna solución?

También intenté configurar una devolución de llamada en este método y hacer Assert.Fail dentro de él, pero como esto también se traga, el marco de prueba (prueba integrada VS 2008) no se notifica. ..

Estoy usando Moq 2.6.1014.1. (no tenía tiempo para actualizar a moq 3 todavía)

Respuesta

11

Bueno, esto es embarazoso, he logrado resolverlo.

En 3.0 se puede hacer esto:

mFMXmlC.Verify(f=>f.Put_Queue_Response(It.IsAny<Uri>(), 
             It.IsAny<string>(), 
             It.IsAny<string>(), 
             It.IsAny<object>()), Times.Never()); 

todavía no entiendo por qué VerifyAll no funcionó, pero esto parece ajustarse a la ley de todos modos. Dejaré la pregunta, en caso de que alguien más esté buscando algo similar.

+0

Es posible que desee volver a publicar esto en http://groups.google.com/group/moqdisc?pli=1 para determinar si se trata de un error o comportamiento esperado. – TrueWill

Cuestiones relacionadas