JUnit單元測(cè)試入門必看篇
什么是單元測(cè)試
寫(xiě)了個(gè)類,要給別人用,會(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
建立類
建立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) 類放在test包中
b) 類名用XXXTest結(jié)尾
c) 方法用testMethod命名
其他框架
TestNG
以上這篇JUnit單元測(cè)試入門必看篇就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java JDBC連接Kerberos認(rèn)證的HIVE和Impala方式
本文主要介紹了HiveJDBC和ImpalaJDBC的使用方法,包括版本對(duì)應(yīng)、Maven安裝、主機(jī)名配置、端口開(kāi)通、JDBC連接和Kerberos認(rèn)證等2025-02-02
Java使用JSqlParser解析復(fù)雜的SQL語(yǔ)句的詳細(xì)步驟
這篇文章介紹了在Java代碼中使用 JSqlParser解析復(fù)雜SQL語(yǔ)句的相關(guān)內(nèi)容,包括JSqlParser是什么及安裝步驟,其使用場(chǎng)景如分析、轉(zhuǎn)換、生成和驗(yàn)證SQL語(yǔ)句,處理SQL注入攻擊的方法,以及解析復(fù)雜SQL語(yǔ)句的步驟、示例代碼和對(duì)不同類型語(yǔ)句的處理,需要的朋友可以參考下2025-01-01
idea?與?maven?使用過(guò)程中遇到的問(wèn)題及解決方案
最近將IDEA 升級(jí)到 IntelliJ IDEA 2021.3.2,在將maven項(xiàng)目導(dǎo)入IDEA后,maven build時(shí)報(bào)異常,這個(gè)問(wèn)題是IntelliJ IDEA 2021.3.2 不兼容導(dǎo)致的,下面小編給大家?guī)?lái)了idea?與?maven?使用過(guò)程中遇到的問(wèn)題及解決方案,感興趣的朋友一起看看吧2022-05-05
SpringBoot應(yīng)用部署到外置Tomcat的實(shí)現(xiàn)
SpringBoot內(nèi)置tomcat使用很方便,本文主要介紹了SpringBoot應(yīng)用部署到外置Tomcat的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07
redis中存儲(chǔ)list<map>,list<entity>的處理
本文主要介紹了redis中存儲(chǔ)list<map>,list<entity>的處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
使用自定義注解+springAop實(shí)現(xiàn)參數(shù)非空校驗(yàn)方式
這篇文章主要介紹了使用自定義注解+springAop實(shí)現(xiàn)參數(shù)非空校驗(yàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09

