我对这两种方法感到困惑,因为两者都可以做同样的事情,比如下面我的代码片段。
使用 assertEquals()
String a = "Hello";
String b = "Hello";
assertEquals(a, b);
使用 assertTrue()
assertTrue(a.equals(b));
有人能告诉我这两种方法之间的实际区别吗?
答案 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而构成错误消息,但它们是事物单元测试框架的种。)