Junit4的变化还是挺大的,在4.7版本中有引入了另一特性,那就是Rule。总的来说,Rule是Junit的一种扩展机制。规则可以很灵活的添加或重新定义每个测试方法或类的行为,测试人员能重新利用或扩展junit提供的规则,也可以定义自己的规则。
http://www.infoq.com/cn/news/2009/07/junit-4.7-rules列举过有关的junit提供的规则或4.7的变化:
* TemporaryFolder:测试可以创建文件与目录并且会在测试运行结束后将其删除。这对于那些与文件系统打交道且独立运行的测试来说很有用。其实这个功能不常用,但有时候的确又会用到,Rule本身的定为就是为了那些有着复杂要求的测试而准备的。不过使用起来并不复杂:
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Test
public void shouldLoadFromPropertiesFile() throws IOException {
File createdFile= folder.newFile("myfile.txt");
File createdFolder= folder.newFolder("subfolder");
}
不过需要注意的是,不能在@Before注释的方法内创建文件或文件夹,如果这样,测试完后,并不会删除相应的文件或文件夹,这也让本人郁闷了一些时间才发现的。
* ExternalResource:这是一种资源使用模式,它会提前建立好资源并且会在测试结束后将其销毁。这对于那些使用socket、嵌入式服务器等资源的测试来说很有用。
* ErrorCollector:可以让测试在失败后继续运行并在测试结束时报告所有错误。这对于那些需要验证大量独立条件的测试来说很有用(尽管这本身可能是个“test smell”)。见下:
@Rule
public ErrorCollector collector= new ErrorCollector();
@Test
public void example() {
collector.addError(new Throwable("first thing went wrong"));
collector.addError(new Throwable("second thing went wrong"));
collector.checkThat(6, is(5));
collector.checkThat(5, is(4));
}
@Test
public void noErrorCollector(){
Assert.assertThat(6, is(5));
Assert.assertThat(4, is(5));
}
正常情况下,测试一旦遇见错误,就会终止测试,像noErrorCollector方法一样,不过example方法就不一样,即使遇见错误,它也会把方法剩下的代码执行完。
* ExpectedException:可以在测试中指定期望的异常类型与消息。以前已经可以在@Test的expected中指定需要抛出的异常,但是不能验证message,因此此功能得到了进一步的完善,而且此规则可以重复利用。
* Timeout:为类中的所有测试应用相同的超时时间。
* Verifier:ErrorCollector之类的Rule的基类,即使验证失败,测试也能通过。
* TestWatchman:那些观测测试的运行而不会对结果进行修改的Rule的基类。
* 匹配器(matcher)的一些变化,关于匹配,主要依赖于Hamcrest 1.2,虽然有集成了hamcrest核心的junit混合包,但此包并没有完全集成hamcrest,所以有些方法不能使用,如Assert.assertThat等,所以建议使用junit4.7独立的包,然后再从外部添加hamcrest-all.jar包。
* 显示超时测试的堆栈信息;这有助于诊断超时的原因。
* 改进了javadoc并修复了几个bug。
经过4.7版本后,junit的功能得到了进一步的增强,但也开始变得有点复杂了,希望以后还是少添加点功能吧,这样就不用天天关注这些新功能了。
分享到:
相关推荐
junit4.7jar 包 含有实例,里面含有junit-4.7.jar包,junit-4.7-src.jar,junit-dep-4.7.jar
junit4.7jar包 包含实例,讲解,并且很多源码
Junit4.7 Junit4.7Junit4.7
junit4.7
junit4.7jar包,导入eclipse的lib文件夹中,是一个易学易用的Java单元测试,使用非常广泛
JAVA测试工具,内涵相关的基本教程,开发必备工具
全套的junit开发包,自己用过,很好用,希望对大家有用,好资源大家一起分享!
Junit4.8.2(Junit4.7)里面有两个版本的Junit根据个人爱好使用,Junit4.11以上需要单独下载hamcrest-core-1.3.jar,因此推荐使用4.8.2版
深圳电信培训中心徐海蛟老师上课用的junit4.7 api chm 速查中文手册.吐血奉献o(∩_∩)o...哈哈
junit-4.7-src.jar junit-4.7-src.jar junit-4.7-src.jar junit-4.7-src.jar junit-4.7-src.jar junit-4.7-src.jar junit-4.7-src.jar
junit-4.7.jar 用于java测试的包
junit-4.7.jar下载,方便想学习的朋友下载,不需要积分,单元测试也比较的简单方便,方便测试和联调
junit4.7以及hamcrest-core-1.3
JUnit4.7包及源码 JUnit4.8包 JUnit4.11包及源码,以及JUnit文档
struts2_spring3.0_Junit4.7_Maven2.2.1_整合运行说明_培训
测试工具junit的jar包:junit4.7-SNAPSHOT-20090511-2347.rar,需要用到这个测试工具的可以下载一下
主要是做java开发的单元测试,这里面包括全部的测试所需要的jar文件和junit的相关文档,很全
junit-4.7.jar+junit-4.7-src.jar