断言与JUnit断言

今天,我看到了一个带有Java断言而不是JUnit断言的JUnit测试用例-相对于另一个而言,优先选择一个优点还是缺点?

回答:

在JUnit4中,JUnit断言引发的异常(实际上是Error)与java

assert关键字(AssertionError)引发的错误相同,因此它assertTrue与堆栈跟踪完全相同,除了您无法分辨出其区别。

话虽这么说,断言必须在JVM中使用特殊标志运行,导致许多测试似乎通过了,仅仅是因为有人在运行JUnit测试时忘记使用该标志配置系统-不好。

通常,因此,我认为使用JUnit

assertTrue是更好的做法,因为它可以保证测试运行,确保一致性(有时使用assertThat或不是Java关键字的其他断言),以及JUnit的行为是否断言应该在将来进行更改(例如,加入某种过滤器或其他将来的JUnit功能),您的代码将能够利用这一点。

Java中assert关键字的真正目的是能够将其关闭而不会增加运行时间。这不适用于单元测试

以上是 断言与JUnit断言 的全部内容, 来源链接: utcz.com/qa/403016.html

回到顶部