JUnit4测试框架
在软件测试领域有很多的测试框架,比如JUnit、TestNG等,但是最著名的则是JUnit。在这个测试框架中有一句经典的话:keeps the bar green to keeps the code clean!以下介绍整个框架的入门。
新建和命名规则
我们可以“new--JUnitTest Case”来新建一个JUnit测试类,如下:
红色部分可以确定要测试的类。
我们对已要测试的类的命名为:类名+Test,而类中的方法命名为test+方法名,方法名的首写字母一般为小写,这个就要改成大写,比如:
类名:User --> UserTest
方法名:add --> TestAdd
放弃旧的断言,使用hamcrest断言
在以前的断言中,我们使用junit提供的方法。但是现在我们只是用assertThat一个方法来代替其他所有的断言方法,但是需要引入hamcrest包。
3.示例
a)assertThat( n, allOf( greaterThan(1),lessThan(15) ) );
assertThat( n, anyOf( greaterThan(16), lessThan(8) ) );
assertThat( n, anything() );
assertThat( str, is( "bjsxt" ) );
assertThat( str, not( "bjxxt" ) );
b)assertThat( str, containsString("bjsxt" ) );
assertThat( str, endsWith("bjsxt" ) );
assertThat( str, startsWith( "bjsxt" ) );
assertThat( n, equalTo( nExpected ) );
assertThat( str, equalToIgnoringCase( "bjsxt" ) );
assertThat( str, equalToIgnoringWhiteSpace( "bjsxt" ) );
c)assertThat( d, closeTo( 3.0, 0.3 ) );
assertThat( d, greaterThan(3.0) );
assertThat( d, lessThan (10.0) );
assertThat( d, greaterThanOrEqualTo (5.0) );
assertThat( d, lessThanOrEqualTo (16.0) );
d)assertThat( map, hasEntry("bjsxt", "bjsxt" ) );
assertThat( iterable, hasItem ( "bjsxt" ) );
assertThat( map, hasKey ( "bjsxt" ) );
assertThat( map, hasValue ( "bjsxt" ) );
JUnit4 Annotation
1.@Test: 测试方法
a)(expected=XXException.class)
这个是如果方法要测试抛出的异常是否是期望的异常。
b)(timeout=xxx)
这个是测试程序运行效率的,是否是在规定的时间内完成的。
2.@Ignore: 被忽略的测试方法
3.@Before: 每一个测试方法之前运行
4.@After: 每一个测试方法之后运行
5.@BeforeClass: 所有测试开始之前运行
6.@AfterClass: 所有测试结束之后运行
Failure和Error
1.Failure是指测试失败
2.Error是指测试程序本身出错