setup quantity meaning ejemplos alibaba moq

quantity - moq nuget



¿Cuál es el propósito de Verificable() en Moq? (2)

¿Cuál es el propósito de Verifiable() ?

Si verifico un Mock y lo dejo, aún se verifica la SetUp .

Editar: Estaba usando VerifyAll() tanto, el motivo de todo lo que se verifica. Después de cambiar a Verify() solo se .Verifiable() mis .Verifiable() .


ADDENDUM: Como dice la otra respuesta, el propósito de .Verifiable es .Verifiable una Setup en un conjunto de "llamadas de Verify(...) diferidas Verify(...) " que luego se pueden desencadenar a través de mock.Verify() .

La aclaración del OP deja en claro que ese era el objetivo y que el único problema era descubrir por qué no funcionaba, pero cuando @Liam lo pinchó, la respuesta también debería tocar esto: - Los casos clave de uso en la medida de lo posible ver son:

  • manteniendo DRYness entre un mock.Setup() y mock.Verify
  • lo que permite desconectar la configuración de una verificación de la propia llamada a Verify (por ejemplo, puede configurarlo en otro método de ayuda)

... y volviendo a mi respuesta, que de manera muy escueta dice: "tengan cuidado ya que se considera que los beneficios anteriores son superados por el efecto que tiene el logro de esos objetivos en la legibilidad y mantenimiento de pruebas que se basan demasiado en tales construcciones"

ORIGINAL: Tenga en cuenta que siempre que sea posible, uno debe seguir el diseño AAA y, por lo tanto, uno debe hacer un mock.Verify( expression ) explícito. mock.Verify( expression ) llamadas después de que se haya realizado el trabajo, en lugar de un mock.Setup( ... ).Verifiable() emparejado con un mock.Verify() o mock.VerifyAll() siempre que sea posible (crédito: @kzu ).


Cuando se llama al método Verify() al final de la prueba, si no se ha llamado a ninguna de las expectativas marcadas como verificables, se thrown una excepción.

VerifyAll() no verifica las expectativas verificables.