TestNG中assertEquals()与assertTrue()之间的实际区别是什么?

时间:2017-02-01 07:29:43

标签: testng

我对这两种方法感到困惑,因为两者都可以做同样的事情,比如下面我的代码片段。

使用 assertEquals()

String a = "Hello";
String b = "Hello";

assertEquals(a, b);

使用 assertTrue()

assertTrue(a.equals(b));

有人能告诉我这两种方法之间的实际区别吗?

1 个答案:

答案 0 :(得分:33)

assertEquals更好,因为它为单元测试框架提供了有关您真正感兴趣的内容的更多信息。这使得它可以在测试失败时提供更好的错误信息。

假设你有

String a = "Hello";
String b = "Hi";

然后测试失败可能类似于:

// From assertEquals(a, b)
Error: Expected "Hi"; was "Hello"

// From assertTrue:
Error: Expected true; was false

您认为哪些内容可以为您提供更多信息,同时考虑到这些值可能是合理复杂计算的结果?

(这些是由于我没有安装testng而构成错误消息,但它们是事物单元测试框架的。)