使用 Assume.assumeTrue 或 Assert.assertTrue,测试何时退出?

2024-03-26

我正在使用 JUnit 4.12,这是我目前对经常使用的以下 API 的理解:

  • 假设真:如果表达式计算结果为假,测试将停止并被 被忽略
  • assertTrue:如果条件为 false,则抛出 AssertionError
  • assertEquals:如果它们不相等,则抛出 AssertionError 给定的消息
  • assertNotNull:如果为null,则抛出AssertionError

但是,我无法弄清楚以下几件事:

  1. 我的理解是,只有假设True,测试才会退出,但断言的定义是,当语句计算结果为 false 时,程序应该退出
  2. 当测试抛出 AssertionError 时,它是退出测试用例还是继续执行剩余的步骤?
  3. 即使测试抛出断言错误,测试是否可以被视为通过,或者测试是否被视为失败?

  1. assumeTrue意味着测试不应该运行。这并不意味着您的代码已损坏,并且大多数跑步者会将此测试视为“忽略”

  2. An AssertionError意味着测试失败。该测试用例(单一方法)中不再运行任何步骤。这样做是没有意义的,因为测试已经失败了

  3. 测试失败了。如果您想否定测试的意义,还有其他方法可以做到这一点,例如代替assertNull with assertNotNull

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Assume.assumeTrue 或 Assert.assertTrue,测试何时退出? 的相关文章

随机推荐