Como fazer o manuseio de exceção com Nunit e MOQ?
Pergunta
Estou tentando usar as freiras novas maneiras de lidar com exceção, mas estou achando difícil encontrar informações sobre ela e como usá -las com o MOQ.
No momento, tenho o MOQ que lança uma exceção em um método ridicularizado, mas não sei como usar o Nunit para pegá -lo e olhar para ele.
Solução
Existem algumas maneiras diferentes de fazê -lo; Eu uso assert.throws.
var exception = Assert.Throws<YourTypeOfException>(()=> Action goes here);
por exemplo
var exception = Assert
.Throws<ArgumentNullException>(()=> new ChimpPuncher(null));
Você pode consultar ainda mais o objeto de exceção, se quiser, por exemplo
Assert.That(exception.Message, Text.Contains("paramname");
Outras dicas
A melhor maneira de mencionar é: [ExpectedException(typeof(ApplicationException))]
acima do método de teste.
Por que você não pode incluir a chamada do método ridicularizada em um bloco de tentativa/captura e capturar a exceção específica que está sendo lançada?