Assert.AreEqual vs Assert.IsTrue / Assert.IsFalse

时间:2011-11-03 16:08:23

标签: c# .net unit-testing

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

你应该:

expected = true;
Assert.AreEqual(expected, actual);

Assert.IsTrue(actual);

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

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

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

if expected.equals(actual)
            test = true;
else 
            test = false;
Assert.IsTrue(test);

2 个答案:

答案 0 :(得分:19)

如果您正在测试直接返回应该始终为true的布尔值,那么您应该只使用Assert.IsTrue

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

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

答案 1 :(得分:15)

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