2个JUnit Assert类之间的差异

JUnit框架包含2个Assert类(很明显,在不同的包中),每个方法看起来都非常相似。 任何人都可以解释为什么这是?

我所指的类是: junit.framework.Assertorg.junit.Assert


旧的方法(JUnit 3)是通过扩展junit.framework.TestCase来标记测试类。 继承的junit.framework.Assert本身和你的测试类获得了以这种方式调用断言方法的能力。

从JUnit的第4版开始,框架使用Annotations来标记测试。 所以你不再需要扩展TestCase 。 但这意味着,断言方法不可用。 但是你可以静态导入新的Assert类。 这就是为什么新类中的所有断言方法都是静态方法的原因。 所以你可以这样导入它:

import static org.junit.Assert.*;

在这个静态导入之后,你可以使用这个方法而不需要前缀。

在重新设计时,他们也转向了新的org.junit软件包,该软件包更符合软件包命名的常规惯例。


JUnit 3.X: junit.framework.Assert

JUnit 4.X: org.junit.Assert

最好使用最新版本,特别是在运行JDK5及更高版本时注解支持。


实际上有一个功能上的变化: org.junit.Assert会抱怨,如果你使用双参数assertEquals() floatdouble ,而junit.framework.Assert会默默地autobox它。

链接地址: http://www.djcxy.com/p/81709.html

上一篇: differences between 2 JUnit Assert classes

下一篇: Why @Rule annotated fields in JUnit has to be public?