moq: no se ha llamado al método de verificación si la clase se traga las excepciones

StackOverflow https://stackoverflow.com/questions/1445745

  •  22-07-2019
  •  | 
  •  

Pregunta

Estoy intentando probar una clase bastante compleja usando Moq y me encuentro con un problema.

Estoy tratando de verificar que NO se llame a un método, y generalmente esto es simple de hacer configurando MockBehavior.Strict, pero aquí, sin embargo, la clase tiene su propio mecanismo de informe de errores, por lo que se traga la excepción lanzada por Moq.

.VerifyAll 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 he intentado configurar una devolución de llamada en este método y hacer Assert. Fallo dentro de él, pero como esto también se traga, el marco de prueba (prueba incorporada VS 2008) no recibe notificación. .

Estoy usando Moq 2.6.1014.1. (todavía no tuve tiempo de actualizar a moq 3)

¿Fue útil?

Solución

Bueno, esto es vergonzoso, he logrado resolverlo.

En 3.0 puedes 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 de todos modos parece encajar. Dejaré la pregunta arriba, en caso de que alguien más esté buscando algo similar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top