moq - como verificar método não foi chamado se as exceções andorinhas classe
-
22-07-2019 - |
Pergunta
Eu estou tentando testar uma classe bastante complexa usando Moq e estou correndo em um problema.
Eu estou tentando verificar se um método não são chamados, e geralmente isso é simples de fazer, definindo MockBehavior.Strict, mas aqui no entanto a classe tem seu próprio mecanismo de relatório de erros para que ele engole a exceção sendo lançada por Moq.
método .VerifyAll no final do teste também passa muito bem, o que é muito estranho. É este um bug no Moq, existem soluções alternativas?
Eu também tentei a criação de uma chamada de retorno sobre este método e fazer Assert.Fail dentro dele, mas como este é engolido, bem como, a estrutura de testes (VS test 2008 builtin) não ser notificado de que .. .
Eu estou usando Moq 2.6.1014.1. (Não teve tempo para atualizar para moq 3 ainda)
Solução
Bem, isto é embaraçoso, eu consegui resolvê-lo.
Em 3,0 você pode fazer isso:
mFMXmlC.Verify(f=>f.Put_Queue_Response(It.IsAny<Uri>(),
It.IsAny<string>(),
It.IsAny<string>(),
It.IsAny<object>()), Times.Never());
Ainda não entendo por que VerifyAll
não funcionou, mas este parece caber a conta de qualquer maneira. Vou deixar a questão se, no caso de alguém está procurando por algo semelhante.