为什么"Assert"类有这么多看似多余的方法?什么时候应该使用?

Cat*_*kul 6 c# unit-testing assert

所以我看到Assert有几十种似乎基本上做同样事情的方法.

Assert.IsFalse(     a == b );
Assert.IsTrue(      a != b );
Assert.AreNotEqual( a,   b );
Run Code Online (Sandbox Code Playgroud)

为什么?它只是更明确吗?应该何时使用各种方法?是否有正式的最佳实践文档?

Ode*_*ded 8

简短回答:为了便于阅读.

答案稍长一点:

您的测试也是代码,并且在意图方面与您正在测试的代码一样重要.因此,您希望尽可能清楚地使测试的目的.有时这意味着你使用IsFalse,有时它意味着使用IsTrue.


Ins*_*ter 8

IsFalse和之间的区别IsTrue是可读性.AreNotEqual允许在测试失败时显示更好的错误消息.IsTrue例如,只会告诉你答案应该是真的,而且真的是假的.AreNotEqual将显示在其错误消息中比较的两个值.