ADENDO: Como a outra resposta afirma, o objetivo .Verifiable
é incluir a Setup
em um conjunto de " Verify(...)
chamadas adiadas " que podem ser acionadas via mock.Verify()
.
O esclarecimento do OP deixa claro que esse era o objetivo e o único problema era descobrir por que não estava funcionando, mas, como estimulado o @Liam, a resposta também deveria estar relacionada a isso: - Os principais casos de uso, tanto quanto possível veja são:
- mantendo DRYness entre um
mock.Setup()
emock.Verify
- permitindo desconectar a configuração de uma verificação da própria
Verify
chamada (por exemplo, você pode configurá-la em outro método auxiliar)
... e voltando à minha resposta, que diz de maneira concisa e eficaz: "tenha cuidado, pois os profissionais acima são geralmente considerados superados pelo efeito que a consecução desses objetivos tem na legibilidade e manutenção de testes que se apoiam demais nessas construções"
ORIGINAL: Observe que, sempre que possível, deve-se seguir o layout AAA e, portanto, deve-se fazer mock.Verify( expression )
chamadas explícitas após a conclusão do trabalho, em vez de mock.Setup( ... ).Verifiable()
emparelhar com um mock.Verify()
oumock.VerifyAll()
sempre que possível (crédito: @kzu ).