Como verifico que o método NÃO foi chamado no Moq ?
Tem algo como AssertWasNotCalled?
ATUALIZAÇÃO: A partir da versão 3.0, uma nova sintaxe pode ser usada:
mock.Verify(foo => foo.Execute("ping"), Times.Never());
ATUALIZAÇÃO : Desde a versão 3, verifique a atualização da pergunta acima ou a resposta de Dann abaixo.
Ou, faça com que o seu mock seja estrito, para que ele falhe se você chamar um método para o qual você não espera
new Mock<IMoq>(MockBehavior.Strict)
Ou, se você quiser que seu mock seja solto, use o .Throws (Exception)
var m = new Mock<IMoq>(MockBehavior.Loose);
m.Expect(a => a.moo()).Throws(new Exception("Shouldn't be called."));
Execute uma verificação após o teste com um
Times.Never
conjunto de enumerações. por exemplofonte
Roubado de: John Foster respondeu à pergunta "Precisa de ajuda para entender melhor o Moq"
fonte
Na verdade, é melhor especificar
.AtMost(0)
após a instrução Returns.Embora os "lances" também funcionem,
AtMost(0)
é IMHO mais expressivo.fonte
Use .AtMostOnce ();
Após o teste real, chame o método novamente. Se lançar uma exceção, foi chamado.
fonte