`
61party
  • 浏览: 1052935 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

从JUnit3升级到JUnit4

 
阅读更多
我个人认为, JUnit4最大的特点是引入了Java5的注释Annotation。
1. @Test
在JUnit3,所有的test case的方法名都要以"test"为前缀prefix;
在JUnit4,在test case的方法前加上@Test,就明白了。
@Test
public void empty() {
/* test case 1*/
Collection collection = new ArrarList();
assertTrue(collection.isEmpty());
}
2. @Before和 @After
@Before和 @After 就是setUp()和tearDown()的替代。
@Before
public void runBeforeEveryTest() {
simpleMath = new SimpleMath();
}

@After
public void runAfterEveryTest() {
simpleMath = null;
}
3. @BeforeClass 和 @AfterClass
在JUnit3,如果想仅调用一次setUp()和tearDown() for all test cases, 使用TestSetup类;在JUnit4,就省事了:
@BeforeClass
public static void runBeforeClass() {
// run for one time before all test cases
}

@AfterClass
public static void runAfterClass() {
// run for one time after all test cases
}
4. 测试异常处理
在《JUnit3的使用》文章中,看到旧式的异常测试是在抛出异常的代码中放入 try 块,然后在 try 块的末尾加入一个 fail() 语句:
public void testCase2() {
/* test case 2*/
ArrayList emptyList = new ArrayList();
try {
Object o = emptyList.get(0);
fail("Should raise an IndexOutOfBoundsException");
} catch (IndexOutOfBoundsException expected) {
assertTrue(true);
}
}
在JUnit4,添加@Test,使用参数“expected”,并指明抛出异常的Exception类:
@Test(expected = IndexOutOfBoundsException.class)
public void testCase2() {
/* test case 2*/
ArrayList emptyList = new ArrayList();
Object o = emptyList.get(0);
}
5. @Ignore
对于你想暂时不进行的test cse, 在该方法前添加@Ignore
@Ignore("Not Ready to Run")
@Test
public void multiplication() {
assertEquals(15, simpleMath.multiply(3, 5));
}
6. 设置超时
在@Test,使用"timeout"参数。如果测试运行的时间超过指定的毫秒数,则测试失败。
@Test(timeout=3000)
public void remoteBaseRelativeResolutionWithDirectory()
 throws IOException, ParsingException {
  readBuilder.parse("config.xml");
}
7.添加了新的断言
JUnit 4 为比较数组添加了两个 assert() 方法:
  public static void assertEquals(Object[] expected, Object[] actual)
public static void assertEquals(String message, Object[] expected, Object[] actual)
  这两个方法以最直接的方式比较数组:如果数组长度相同,且每个对应的元素相同,则两个数组相等,否则不相等。数组为空的情况也作了考虑。
@Test
public void listEquality() {
List<Integer> expected = new ArrayList<Integer>();
expected.add(5);

List<Integer> actual = new ArrayList<Integer>();
actual.add(5);

assertEquals(expected, actual);
}
8. JUnit4Adapter
为了能够在JUnit3环境下run JUnit4 test, 所以提供了JUnit4Adapter
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(SimpleMathTest.class);
}
9.其他
失败(assert 方法检测到的预期的错误)与错误(异常指出的非预期的错误)之间不再有任何差别。尽管 JUnit 3 测试运行程序仍然可以区别这些情况,而 JUnit 4 运行程序将不再能够区分。
分享到:
评论

相关推荐

    junit4.12.jar

    junit4.12 jar包的下载。只要是android studio 升级到3.0之后的(我的是3.2)就会出现很多错误,然而替换junit.jar 包会解决很多问题。

    junitperf::sailboat:Junit performance rely on junit5 and jdk8+.(java 性能测试框架。性能测试。压测。测试报告生成。)

    特性支持 I18N支持多种报告生成方式,支持自定义Junt5 完美支持,便于 Java 开发者使用变更记录v2.0.7 主要变更升级 heaven 依赖快速开始项目依赖jdk1.8 及其以上版本 及其以上版本maven 导入&lt;dependency&gt; &lt;groupId&gt;...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    同时使用了Struts2、Spring4、Hibernate4、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。 三、 三大框架最新版本下载:截止2014-10-01 Struts2.3.6:发布于2014-05-03,目前的最新版本。...

    Bigdata_project:电商大数据项目-推荐系统(java和scala语言)

    大数据项目 电商大数据项目对应的博客地址 2019 // 8/4在/ MyStormProject升级...3分钟前/ dependsbot机器人在/ MyMapReduceProject依赖项#4中将junit从3.8.1碰撞到4.13.1 在3分钟前将/ myStormProject依赖项#3中

    gradle-7.6.2-all.zip 快速下载

    4、反向移植JUnit5动态测试日志错误修复 5、依赖图解析:等价排除会导致不必要的图突变[backport 7.x] 6、将“失败后使用编译器API数据进行增量编译”反向移植到7.x 7、排除规则合并:缺少优化[Backport 7.x] 8、扩展...

    Selenium4 PO设计模式源码

    maven工程,Selenium4 PO设计模式源码,junit4架构,包括核心业务类,objectsore,自动化核心公共类,以及自动升级浏览器对应driver

    java-spring-boot-uid-generator-baidu:spring-boot 百度uid-generator 百度的唯一ID生成器

    8.0.12升级 junit 版本案例启动入口uid-provider 中的 ConsumerApplication浏览器http://localhost:8080/uidGenerator文档说明部分升级说明这里的升级,是升级 官方 代码依赖官方代码地址:升级spring boot 版本: ...

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    Struts2中关于ValueStack的一些操作

    4、 WebWork为每一次请求构建一个ValueStack,并将所有相关的数据对象(例如:Action对象、Model对象等)放到ValueStack中。再将ValueStack暴露给视图页面,这样页面就可以直接访问后台处理生成的数据。 下面我们...

    robolectric-androidstudio-plugin

    将 Android Gradle 升级到 1.1.0-rc3 将 src/robolectricTest/java 重命名为 src/test/java 重新定义从 robolectricCompile 到 testCompile 的测试依赖 在 android studio 中启用单元测试支持(文件 -&gt; 设置 -&gt; ...

    Java SE实践教程 pdf格式电子书 下载(一) 更新

    感谢大家的支持,我终于升级了,上传限制得到提升,所以把资源整合下!希望大家一如既往 Java SE实践教程 pdf格式电子书 下载(一) 更新 http://download.csdn.net/source/2824033 Java SE实践教程 pdf格式...

    Java SE实践教程 pdf格式电子书 下载(四) 更新

    感谢大家的支持,我终于升级了,上传限制得到提升,所以把资源整合下!希望大家一如既往 Java SE实践教程 pdf格式电子书 下载(一) 更新 http://download.csdn.net/source/2824033 Java SE实践教程 pdf格式电子书...

    trade_manager:用于算法交易的Java客户端。 从https克隆

    将所有测试用例更新为JUnit4样式添加功能以处理尾随和尾随止损。 更新到Java 1.8使用ZonedDateTime而不是java.util.Date 将JPA更新为2.1 chnge版本以仅使用nySQL 5.6或更高版本在Build中将type属性添加到CodeType,...

    trade-manager:海关贸易经理

    将所有测试用例更新为JUnit4样式 添加功能以处理尾随和尾随止损。 更新到Java 1.8使用ZonedDateTime而不是java.util.Date 将JPA更新为2.1 chnge版本以仅使用nySQL 5.6或更高版本 在Build中将type属性添加到Code...

    Spring_Framework_ API_5.0.5 (CHM格式)

    1. 基准升级 要构建和运行 Spring5 应用程序,你至少需要 J2EE7 和 JDK8。以前的 JDK 和 JavaEE 版本不再支持。 JavaEE7 包含: Servlet 3.1 JMS 2.0 JPA 2.1 JAX-RS 2.0 Bean Validation 1.1 与 Java ...

    thymeleaf-test:与 Thymeleaf 集成的 Spring 测试

    该应用程序使用 Liquibase 创建和升级数据库,并使用 Thymeleaf 作为模板引擎。 您可以在 src/main/webapp/WEB-INF/thymeleaf/layout.html 找到布局模板。 数据库在内存中用于生产,基于文件用于测试。 因此,您只...

    stalber:基于 Pecado 微服务改造的 Spring Boot 项目

    环境JDK8MySQL8JUnit4Hamcrest2快速开始执行 db/db.sqlmvn clean install -Dmaven.test.skip=true运行 StalberAdminApplicationSwagger 地址:建议dp\ims\system\commons\admin 五个模块尽量不要修改,方便后续升级...

    Spring5.0官方中文文档

    升级到 Java SE 8 和 Java EE 7 反应式编程模型 使用注解进行编程 函数式编程 使用 REST 端点执行反应式编程 HTTP/2 支持 Kotlin 和 Spring WebFlux 使用 Lambda 表达式注册 bean Spring WebMVC 支持最新的 API 使用...

Global site tag (gtag.js) - Google Analytics