Junit 单元测试使用总结
什么是单元测试
????? 我们写了一套接口,一个类拿给别人用,怎样保证没有bug呢?测试一下。我们可以写一个main方法测试一下啊!使用main方法测试好吗?码农们肯定异口同声的说:“真的是不好”。
?????? 使用main测试:
??????????????????? 1.繁琐不说,也不能好多方法一起测试
????????????????????2.好的人工的看结果,检查程序是否正确
?
??
Junit HelloWorld
???? 1 new project
????????? 2 new? class
????????? 3 建立classcase
?
放弃旧的断言,使用hamcrest
?????
assertThat( str, not( "bjxxt" ) );
assertThat( str, endsWith("bjsxt" ) );
assertThat( str, startsWith( "bjsxt" ) );
assertThat( n, equalTo( nExpected ) );
assertThat( str, equalToIgnoringCase( "bjsxt" ) );
assertThat( str, equalToIgnoringWhiteSpace( "bjsxt" ) );
assertThat( iterable, hasItem ( "bjsxt" ) );
assertThat( map, hasKey ( "bjsxt" ) );
assertThat( map, hasValue ( "bjsxt" ) );
?
Failure和Error
1.???????? Failure是指测试失败
2.???????? Error是指测试程序本身出错
JUnit4 Annotation
1.???????? @Test: 测试方法
a)???????? (expected=XXException.class)
b)??????? (timeout=xxx)
2.???????? @Ignore: 被忽略的测试方法
3.???????? @Before: 每一个测试方法之前运行
4.???????? @After: 每一个测试方法之后运行
5.???????? @BeforeClass: 所有测试开始之前运行
6.???????? @AfterClass: 所有测试结束之后运行
运行多个测试注意
1.???????? 遵守约定,比如:
a)???????? 类放在test包中
b)??????? 类名用XXXTest结尾
c)???????? 方法用testMethod命名
?
?
?
?
?