Nunit:使用哪个断言来确保在单元测试结束时所有内容都通过了?

Nunit:使用哪个断言来确保在单元测试结束时所有内容都通过了?,nunit,fluent-assertions,Nunit,Fluent Assertions,我已经编写了一个测试,我只想确保所有测试都通过了,并且没有抛出异常 测试结束时是否有某种特殊的断言要使用 这里有什么建议 提前感谢如果仍然抛出异常,单元测试将失败。当然,除非您预期它会失败,在这种情况下,您可以捕获并断言它,例如: var exception = Assert.Throws<Exception>(() => MethodThatShouldThrowAnError()); Assert.AreEqual("Not Brilliant", exception.Me

我已经编写了一个测试,我只想确保所有测试都通过了,并且没有抛出异常

测试结束时是否有某种特殊的断言要使用

这里有什么建议


提前感谢

如果仍然抛出异常,单元测试将失败。当然,除非您预期它会失败,在这种情况下,您可以捕获并断言它,例如:

var exception = Assert.Throws<Exception>(() => MethodThatShouldThrowAnError());
Assert.AreEqual("Not Brilliant", exception.Message);
var exception=Assert.Throws(()=>methodthattshouldthrowanerror());
Assert.AreEqual(“不出色”,exception.Message);

只是不要在测试中编写任何
return
语句。那么,测试毫无例外地完成这一事实就意味着测试中的所有内容都通过了。

如果您使用流畅的断言(您的标记建议),您可以:

Action act = () => MethodThatShouldNotThrowAnError();
act.ShouldNotThrow();

是的,所以,如果我把我的测试归类为通过,如果没有发生异常,我只是不做断言吗?@Martin,是的,基本上是这样,但如果我诚实的话,那不是一个好的测试。如果我处于您的情况,我会完全编写另一个测试(测试其他东西),如果在调用方法时由于某种原因失败,则表明存在错误。我希望我说的有道理。我认为这是一种糟糕的测试方式。如果测试主体只是“DoStuff()”,那么很难维护。每个测试都应该包含一个非常具体的断言,而不是仅仅因为没有抛出就被认为是绿色的。