看了三天的Junit,基本用法汇如下:
一、基础篇:
JUnit4引入了Java5的注释Annotation。常用的注释如下:
名称 | 用途 |
@Test |
方法前加,表示要执行的testcase
|
@Before | tesecase 运行前执行 |
@After | testcase运行后执行 |
@BeforeClass | 类运行前执行 |
@AfterClass | 类运行后执行 |
@Ignore | 表示暂时不想执行这个testcase |
@RunWith | 指定一个Runner来运行你的代码 |
@Rule | 后面有专门分析 |
更详细及相关例子可参考
http://blog.csdn.net/ccjjyy/article/details/6175498
二、JUnit4的核心之一:断言
assertArrayEquals
assertEquals : expected.equals(actual)
assertSame :expected == actual
assertFalse
assertNotNull
assertNotSame
assertNull
assertThat org.junit.Assert.assertThat("albumen", both(containsString("a")).and(containsString("b")));
org.junit.Assert.assertThat(Arrays.asList("one", "two", "three"), hasItems("one", "three"));
org.junit.Assert.assertThat(Arrays.asList(new String[] { "fun", "ban", "net" }), everyItem(containsString ("n")));
assertThat("good", allOf(equalTo("good"), startsWith("good")));
assertThat("good", not(allOf(equalTo("bad"), equalTo("good"))));
assertThat("good", anyOf(equalTo("bad"), equalTo("good")));
assertThat(7, not(CombinableMatcher.<Integer> either(equalTo(3)).or(equalTo(4))));
assertThat(new Object(), not(sameInstance(new Object())));
三、对异常的测试
@Test注释有一个可选参数expected
,这个参数的取值是Throwable
的子类。如果我们想判断上面的代码是否抛出正确的异常。
代码:
@Test(expected= IndexOutOfBoundsException.class) public void empty() { new ArrayList<Object>().get(0); }
也可以利用Rule,代码:
@Rule public ExpectedException thrown = ExpectedException.none(); @Test public void shouldTestExceptionMessage() throws IndexOutOfBoundsException { List<Object> list = new ArrayList<Object>(); thrown.expect(IndexOutOfBoundsException.class); thrown.expectMessage("Index: 0, Size: 0"); list.get(0); // execution will never get past this line }
说明:
- 利用
@Rule
,我们可以对异常的提示信息进行检查。 -
expectMessage
方法还支持使用CoreMatchers.containsString
来进行提示信息的匹配判断,如下:thrown.expectMessage(CoreMatchers.containsString("Size: 0"));
四、测试超时
通过@Test
注释的一个可选参数timeout
的数值(单位毫秒),我们可以告诉框架,预设的超时时间是多少。当测试运行中,执行时间超出了这个预设值,框架就会抛出TimeoutException
异常,标记这个测试失败了。
@Test(timeout=1000) public void testWithTimeout() { ... }
我们也可以使用规则,来为整个测试类里面所有测试方法设置一个统一的超时时间
@Rule public Timeout globalTimeout = new Timeout(10000); // 10 seconds max per method tested
相关推荐
Junit4使用方法
JUnit4基础文档
JUnit4
该文档介绍了如何使用JUNIT4进行单元测试,给出了一个详细的例子
junit4教程(《Junit4初探》)
因 jdk5 中的新特性,JUnit4 也因此有了很大的改变。下面详细介绍 JUnit4 的使用方法,只是举个例子说明junit4 的使用
JUnit4使用.pdf,JUnit就是一个可能帮助你在开发Java程序时进行测试的框架,我们将在这一节中尽可能深入地介绍JUnit的相关知识,但由于篇幅所限,本节过后还是有很多东西在等着你来探索,接住我的这块砖头,去发掘出...
Junit4使用教程详解+源码下载.rar
这是一个junit4测试的jar包,copy进去就可用
java junit4 jar完整包,junit可用来项目的单元测试。
运行junit4所需jar包,包括junit-4.11.jar与 hamcrest-core-1.3.jar
eclipse上通过一个简单例子演示使用JUnit4进行测试
junit4学习文档,有实例,非常详细,不懂的可以参考
junit总结使用例子junit总结使用例子junit总结使用例子
第一步,使用前的环境配置准备工作。(在此文档中我使用JUnit的版本为JUnit4.3.1)先检查一下你的Eclipse环境是否已经有编写JUnit测试类的环境了,如果有了就可以直接使用了,如果没有安装,请参考以下操作,如:在...
JUnit4概述,在Eclipse中使用JUnit4进行单元测试(初级篇、中级篇、高级篇)
JUnit的使用.doc JUnit的使用.doc
在Eclipse中使用JUnit4进行单元测试!
eclipse使用和junit使用
如何在eclipse中使用junit4进行单体测试的说明教程