当前位置:  开发笔记 > 编程语言 > 正文

2个JUnit Assert类之间的差异

如何解决《2个JUnitAssert类之间的差异》经验,为你挑选了4个好方法。

JUnit框架包含2个Assert类(显然在不同的包中),并且每个类的方法看起来非常相似.任何人都可以解释为什么会这样吗?

我所指的课程是:junit.framework.Assertorg.junit.Assert.



1> Mnementh..:

旧方法(JUnit 3)是通过扩展来标记测试类junit.framework.TestCase.继承了junit.framework.Assert自己,你的测试类获得了以这种方式调用assert方法的能力.

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

import static org.junit.Assert.*;

在此静态导入之后,您可以使用此方法而不使用前缀.

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


这个答案并不完全正确,您可以在类junit.framework.Assert和org.junit.Assert中进行方法的静态导入.但是,坚持使用org.junit.Assert类可能是一个好主意,因为它更新,稍微重写并且可能意味着替代.

2> ReneS..:

JUnit 3.X: junit.framework.Assert

JUnit 4.X: org.junit.Assert

更喜欢最新版本,特别是在运行带有注释支持的JDK5及更高版本时.



3> David Moles..:

实际上有一个功能上的变化:org.junit.Assert如果你使用assertEquals()带有floator 的两个参数会抱怨double,同时junit.framework.Assert会默默地自动装箱.



4> sblundy..:

我相信他们正在重构junit.framework,org.junit并且junit.framework.Assert为了向后兼容而维护.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有