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

Using Assume.assumeTrue or Assert.assertTrue, when do tests exit?

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

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

  1. 我的理解是,只有对于 assumeTrue,测试才会退出,但 assert 的定义是当语句计算为 false 时程序应该退出
  2. 当测试抛出AssertionError时,是退出测试用例还是继续执行剩下的步骤?
  3. 是否可以认为测试通过,即使它们抛出 AssertionError 或测试被认为失败?
  1. assumeTrue表示测试不应该运行。这并不意味着您的代码已损坏,大多数 运行 用户会将此测试视为 "ignored"

  2. AssertionError表示测试失败。该测试用例(单一方法)中不再有步骤 运行。这样做毫无意义,因为测试已经失败

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