J'ai quelques cas où je me fiche de l'exception qui est levée (tant qu'une exception est levée). Malheureusement,Ignorer les exceptions dans xUnit.net
Assert.Throws<Exception>(someDelegate);
ne passe pas à moins exactement une instance de Exception
(donc pas une instance d'une classe dérivée) est levée. Je sais que je peux obtenir le comportement que je veux avec
Exception exception = Record.Exception(someDelegate);
Assert.NotNull(exception);
mais il ne lit pas correctement. Ai-je manqué quelque chose dans xUnit qui a le comportement que je veux? Voici deux tests qui indiquent ce que je veux dire:
[Fact]
public void Throws_exception_and_passes() {
Exception exception = Record.Exception(
() => { throw new InvalidOperationException(); }
);
Assert.NotNull(exception);
}
[Fact]
public void Throws_exception_and_fails() {
Assert.Throws<Exception>(
() => { throw new InvalidOperationException(); }
);
}
sommes entièrement d'accord avec le texte. Je voulais juste ajouter que [réponse « Hanna @ Jon] (http://stackoverflow.com/a/32468935/11635) détaille le maintenant intégré' ThrowsAny' qui met en œuvre le comportement OP désiré lien –
est cassé. xUnit a déménagé à GitHub – mortb