在JUnit4中,JUnit断言引发的异常(实际上是Error)与java
assert关键字(AssertionError)引发的错误相同,因此它
assertTrue与堆栈跟踪完全相同,除了您无法分辨出其区别。
话虽这么说,断言必须在JVM中使用特殊标志运行,导致许多测试似乎通过了,仅仅是因为有人在运行JUnit测试时忘记使用该标志配置系统-不好。
通常,因此,我认为使用JUnit
assertTrue是更好的做法,因为它可以保证测试运行,确保一致性(有时使用
assertThat或不是Java关键字的其他断言),以及JUnit的行为是否断言应该在将来进行更改(例如,加入某种过滤器或其他将来的JUnit功能),您的代码将能够利用这一点。
Java中assert关键字的真正目的是能够将其关闭而不会增加运行时间。这不适用于单元测试。



