ADENDO: Como a outra resposta afirma, o objetivo .Verifiableé incluir a Setupem 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
Verifychamada (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 ).