Pregunta

Tengo una prueba unitaria que

  1. crea una burla
  2. llama a mi método para ser probado (también inyectando mi simulacro)
  3. afirma los resultados del método
  4. verifica llamadas simuladas

Cuando las llamadas simuladas no se verifican como se esperaba, obtengo una excepción y, por lo tanto, no supero la prueba.
¿Cómo debo llamar correctamente a esto verifica?¿Debería simplemente llamar?

// verify property get accessor call
m.VerifyGet<bool>(p => p.IsRead, Times.AtLeastOnce());

o debería llamarlo con Assert

// verify property get accessor call
Assert.DoesNotThrow(() => m.VerifyGet<bool>(p => p.IsRead, Times.AtLeastOnce()));

Cuando la verificación falla, obtengo una excepción de todos modos.
¿Cuál es la forma correcta de realizar una verificación simulada?

¿Fue útil?

Solución

VerifyGet es suficiente, afirman parece añadir ningún valor ¿por qué añadir más verborrea?

Otros consejos

El DoesNotThrow-método debe ser usado para probar si sus propios métodos se adhieren a sus especificaciones.

En resumen, la adición de la DoesNotThrow parece que está probando el comportamiento de VerifyGet en lugar del comportamiento del SUT.

Por supuesto, se puede envolver alrededor de la VerifyGet, pero creo que sólo hace las cosas confusas ya VerifyGet fallaría la prueba de todos modos.

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