JUnit單元測試入門必看篇
什么是單元測試
寫了個類,要給別人用,會不會有bug?怎么辦?測試一下。
用main方法測試好不好?不好!
不能一起運行!
大多數(shù)情況下需要人為的觀察輸出確定是否正確
為什么要進行單元測試
重用測試,應(yīng)付將來的實現(xiàn)的變化。
提高士氣,明確知道我的東西是沒問題的。
JUnit4 HelloWorld
需要導(dǎo)入JUnit和hamcrest包
new project
建立類
建立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是指測試失敗
Error是指測試程序本身出錯
JUnit4 Annotation
@Test: 測試方法
a) (expected=XXException.class)
b) (timeout=xxx)
2.@Ignore: 被忽略的測試方法
3.@Before: 每一個測試方法之前運行
4.@After: 每一個測試方法之后運行
5.@BeforeClass: 所有測試開始之前運行
6.@AfterClass: 所有測試結(jié)束之后運行
運行多個測試
注意
遵守約定,比如:
a) 類放在test包中
b) 類名用XXXTest結(jié)尾
c) 方法用testMethod命名
其他框架
TestNG
以上這篇JUnit單元測試入門必看篇就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java JDBC連接Kerberos認證的HIVE和Impala方式
本文主要介紹了HiveJDBC和ImpalaJDBC的使用方法,包括版本對應(yīng)、Maven安裝、主機名配置、端口開通、JDBC連接和Kerberos認證等2025-02-02
Java使用JSqlParser解析復(fù)雜的SQL語句的詳細步驟
這篇文章介紹了在Java代碼中使用 JSqlParser解析復(fù)雜SQL語句的相關(guān)內(nèi)容,包括JSqlParser是什么及安裝步驟,其使用場景如分析、轉(zhuǎn)換、生成和驗證SQL語句,處理SQL注入攻擊的方法,以及解析復(fù)雜SQL語句的步驟、示例代碼和對不同類型語句的處理,需要的朋友可以參考下2025-01-01
SpringBoot應(yīng)用部署到外置Tomcat的實現(xiàn)
SpringBoot內(nèi)置tomcat使用很方便,本文主要介紹了SpringBoot應(yīng)用部署到外置Tomcat的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-07-07
redis中存儲list<map>,list<entity>的處理
本文主要介紹了redis中存儲list<map>,list<entity>的處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
使用自定義注解+springAop實現(xiàn)參數(shù)非空校驗方式
這篇文章主要介紹了使用自定義注解+springAop實現(xiàn)參數(shù)非空校驗方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

