JUnit單元測(cè)試入門(mén)必看篇
什么是單元測(cè)試
寫(xiě)了個(gè)類(lèi),要給別人用,會(huì)不會(huì)有bug?怎么辦?測(cè)試一下。
用main方法測(cè)試好不好?不好!
不能一起運(yùn)行!
大多數(shù)情況下需要人為的觀察輸出確定是否正確
為什么要進(jìn)行單元測(cè)試
重用測(cè)試,應(yīng)付將來(lái)的實(shí)現(xiàn)的變化。
提高士氣,明確知道我的東西是沒(méi)問(wèn)題的。
JUnit4 HelloWorld
需要導(dǎo)入JUnit和hamcrest包
new project
建立類(lèi)
建立testcase
assertThat
使用hamcrest的匹配方法
放棄舊的斷言,使用hamcrest斷言
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" ) );
Failure和Error
Failure是指測(cè)試失敗
Error是指測(cè)試程序本身出錯(cuò)
JUnit4 Annotation
@Test: 測(cè)試方法
a) (expected=XXException.class)
b) (timeout=xxx)
2.@Ignore: 被忽略的測(cè)試方法
3.@Before: 每一個(gè)測(cè)試方法之前運(yùn)行
4.@After: 每一個(gè)測(cè)試方法之后運(yùn)行
5.@BeforeClass: 所有測(cè)試開(kāi)始之前運(yùn)行
6.@AfterClass: 所有測(cè)試結(jié)束之后運(yùn)行
運(yùn)行多個(gè)測(cè)試
注意
遵守約定,比如:
a) 類(lèi)放在test包中
b) 類(lèi)名用XXXTest結(jié)尾
c) 方法用testMethod命名
其他框架
TestNG
以上這篇JUnit單元測(cè)試入門(mén)必看篇就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?MVC請(qǐng)求轉(zhuǎn)發(fā)與請(qǐng)求重定向的示例詳解
轉(zhuǎn)發(fā)指服務(wù)器接收請(qǐng)求后,從一個(gè)資源跳轉(zhuǎn)到另一個(gè)資源中,請(qǐng)求轉(zhuǎn)發(fā)是一次請(qǐng)求,不會(huì)改變?yōu)g覽器的請(qǐng)求地址,這篇文章主要介紹了Spring?MVC請(qǐng)求轉(zhuǎn)發(fā)與請(qǐng)求重定向的相關(guān)知識(shí),需要的朋友可以參考下2023-09-09java操作mongodb之多表聯(lián)查的實(shí)現(xiàn)($lookup)
這篇文章主要介紹了java操作mongodb之多表聯(lián)查的實(shí)現(xiàn)($lookup),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Java中使用JDBC操作數(shù)據(jù)庫(kù)簡(jiǎn)單實(shí)例
這篇文章主要介紹了Java中使用JDBC操作數(shù)據(jù)庫(kù)簡(jiǎn)單實(shí)例,本文以Mysql為例介紹使用Java JDBC操作數(shù)據(jù)庫(kù)的6個(gè)步驟,需要的朋友可以參考下2015-06-06Java線(xiàn)程中的Timer和TimerTask原理詳解
這篇文章主要介紹了Java線(xiàn)程中的Timer和TimerTask原理詳解,Timer和TimerTask成對(duì)出現(xiàn),Timer是定時(shí)器,TimerTask是定時(shí)任務(wù),換句話(huà)說(shuō),定時(shí)任務(wù)TimerTask是給定時(shí)器Timer執(zhí)行的具體任務(wù),需要的朋友可以參考下2023-10-10詳解Spring數(shù)據(jù)緩存注解@Cacheable、@CachePut、@CacheEvict
這篇文章主要介紹了詳解Spring數(shù)據(jù)緩存注解@Cacheable、CachePut、@CacheEvict,當(dāng)以一組參數(shù)第一次調(diào)用某個(gè)方法時(shí),返回值會(huì)被保存在緩存中,如果這個(gè)方法再次以相同的參數(shù)進(jìn)行調(diào)用時(shí),這個(gè)返回值會(huì)從緩存中查詢(xún)獲取,需要的朋友可以參考下2023-07-07Java動(dòng)態(tài)數(shù)組Arraylist存放自定義數(shù)據(jù)類(lèi)型方式
這篇文章主要介紹了Java動(dòng)態(tài)數(shù)組Arraylist存放自定義數(shù)據(jù)類(lèi)型方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10關(guān)于Lombok @Data注解:簡(jiǎn)化Java代碼的魔法棒
Lombok庫(kù)通過(guò)@Data注解自動(dòng)生成常見(jiàn)的樣板代碼如getter、setter、toString等,極大減少代碼量,提高開(kāi)發(fā)效率,@Data注解集成了@ToString、@EqualsAndHashCode、@Getter、@Setter、@RequiredArgsConstructor等注解的功能2024-10-10