moq - como verificar método não foi chamado se as exceções andorinhas classe

StackOverflow https://stackoverflow.com/questions/1445745

  •  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)

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top