Java/ JUnit - AssertTrue vs AssertFalse

2022-08-31 17:03:52

我对Java很陌生,正在学习Eclipse Total Beginner's Tutorials。它们都非常有帮助,但是在第 12 课中,他用于一个测试用例和另一个测试用例。代码如下:assertTrueassertFalse

// Check the book out to p1 (Thomas)
// Check to see that the book was successfully checked out to p1 (Thomas)
assertTrue("Book did not check out correctly", ml.checkOut(b1, p1));    // If checkOut fails, display message
assertEquals("Thomas", b1.getPerson().getName());

assertFalse("Book was already checked out", ml.checkOut(b1,p2));        // If checkOut fails, display message
assertEquals("Book was already checked out", m1.checkOut(b1,p2));

我已经搜索了有关这些方法的良好文档,但没有找到任何内容。如果我的理解是正确的,以及在第二个参数计算结果为false时显示字符串。如果是这样,拥有它们又有什么意义呢?assertTrueassertFalse

编辑:我想我看到了让我感到困惑的东西。作者可能为了展示它们的功能而把它们都放进去了(毕竟这是一个教程)。他设置了一个会失败的,这样消息就会打印出来,告诉我为什么它失败了。开始变得更有意义...我认为这是解释,但我不确定。


答案 1

assertTrue如果第二个参数的计算结果为 to(换句话说,它确保该值为 true),则将失败。 做相反的事情。falseassertFalse

assertTrue("This will succeed.", true);
assertTrue("This will fail!", false);

assertFalse("This will succeed.", false);
assertFalse("This will fail!", true);

与许多其他事情一样,熟悉这些方法的最佳方法是尝试:-)。


答案 2

您的理解不正确,在这种情况下,请始终咨询JavaDoc

assertFalse

public static void assertFalse(java.lang.String message,
                               boolean condition)

断言条件为假。如果不是,则会抛出带有给定消息的断言错误。

参数:

  • message- 断言错误的识别消息(空正常)
  • condition- 要检查的条件

推荐