Assert.AreEqual vs Assert.IsTrue/Assert.IsFalse

edi*_*ode 12 .net c# unit-testing

测试返回类型为bool的方法时.

你应该:

expected = true;
Assert.AreEqual(expected, actual);
Run Code Online (Sandbox Code Playgroud)

要么

Assert.IsTrue(actual);
Run Code Online (Sandbox Code Playgroud)

我知道它们都会产生相同的结果,但哪种方法更好用?

编辑:例如,如果我做AreEqual,它是否与在返回字符串a 1a的方法上执行IsTrue基本相同:

string expected = “true”;
string actual = test.testMethod(data)
bool test;

if expected.equals(actual)
    test = true;
else 
    test = false;
Assert.IsTrue(test);
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 21

只有Assert.IsTrue在测试直接返回应该始终为true的布尔值的东西时才应该使用.

你不应该按摩数据来获得布尔值IsTrue; 相反,你应该在Assert或中调用更相关的方法CollectionAssert.

在您编辑的示例中,您应该通过调用Assert.AreEqual来代替; 它会给你一个更好的消息.


SLa*_*aks 18

使用Assert.IsTrue更清晰,更简洁.

  • @Toto:`Assert.IsTrue失败了'怎么样? (3认同)