詳解Java單元測試Junit框架實(shí)例
問題:
1、目前測試存在的問題
2、Junit注意的細(xì)節(jié)
3、Junit使用規(guī)范
4、斷言
5、案例
junit(單元測試框架)
1、目前存在的問題
1、目前的測試方法如果需要測試,都需要在main方法上調(diào)用
2、目前的結(jié)果都需要我們?nèi)斯け葘?duì)
2、Junit 注意的細(xì)節(jié)
1、如果使用junit測試一個(gè)方法的時(shí)候,在junit窗口上顯示綠色那么表示測試正確,如果顯示了紅色,則代表該方法測試出現(xiàn)了異常不通過
2、如果點(diǎn)擊方法名、類名、包名、工程名運(yùn)行junit分別測試的是對(duì)于的方法,類、包中的所有類的test方法,工程中所有test的方法
3、@Test測試的方法不能是static修飾與不能帶有形參
4、如果測試一個(gè)方法的時(shí)候需要準(zhǔn)備測試的環(huán)境或者是清理測試的環(huán)境,那么可以@Before、@After、@BeforeClass、@AfterClass 這四個(gè)注釋,@Before、@After 是在每個(gè)測試方法測試的時(shí)候都會(huì)調(diào)用一次,@AfterClass、@BeforeClass是在所有的測試方法測試之前與之后都會(huì)調(diào)用一次,這個(gè)方法必須是靜態(tài)的
3、junit使用規(guī)范
1、一個(gè)類如果需要測試,那么該類就應(yīng)該對(duì)應(yīng)著一個(gè)測試類,測試類的命名規(guī)范:被測試類的類名+Test
2、一個(gè)被測試的方法一般對(duì)應(yīng)一個(gè)測試的方法,測試的方法的命名規(guī)范是:test+被測試的方法的方法名
4、斷言
斷言就是不顯示結(jié)果,按照程序運(yùn)行的預(yù)期值和實(shí)際值進(jìn)行比對(duì),顯示運(yùn)行的狀態(tài)。
Assert.assertSame(5, max); // 底層是用了 == Assert.assertSame(new String("abc"), "abc"); Assert.assertEquals(new String("abc"), "abc"); //底層是使用Equals方法比較的 Assert.assertNull("aa"); Assert.assertTrue(true);
5、案例
package cn.xlucas.junit; import java.io.*; import org.junit.*; public class JunitDemo1 { //準(zhǔn)備測試的環(huán)境 //@Before @BeforeClass public static void beforeRead(){ System.out.println("準(zhǔn)備測試環(huán)境成功..."); } //讀取文件數(shù)據(jù),把把文件數(shù)據(jù)都 @Test public void readFile() throws IOException{ FileInputStream fileInputStream = new FileInputStream("F:\\a.txt"); int content = fileInputStream.read(); System.out.println("內(nèi)容:"+content); } @Test public void sort(){ System.out.println("讀取文件數(shù)據(jù)排序.."); } //清理測試環(huán)境的方法 // @After @AfterClass public static void afterRead(){ System.out.println("清理測試環(huán)境.."); } }
希望本篇文章對(duì)您有所幫助
相關(guān)文章
Java 數(shù)據(jù)流之Broadcast State
這篇文章主要介紹了Java 數(shù)據(jù)流之Broadcast State,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09懶人 IDEA 插件推薦: EasyCode 一鍵幫你生成所需代碼(Easycode用法)
這篇文章主要介紹了懶人 IDEA 插件推薦: EasyCode 一鍵幫你生成所需代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08SpringBoot+Druid開啟監(jiān)控頁面的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot+Druid開啟監(jiān)控頁面的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06SpringBoot中Zookeeper分布式鎖的原理和用法詳解
Zookeeper是一個(gè)分布式協(xié)調(diào)服務(wù),它提供了高可用、高性能、可擴(kuò)展的分布式鎖機(jī)制,SpringBoot是一個(gè)基于Spring框架的開發(fā)框架,它提供了對(duì)Zookeeper分布式鎖的集成支持,本文將介紹SpringBoot中的 Zookeeper分布式鎖的原理和使用方法,需要的朋友可以參考下2023-07-07Java中@DateTimeFormat和@JsonFormat注解介紹
@DateTimeFormat和@JsonFormat都是處理時(shí)間格式化問題的,把其他類型轉(zhuǎn)換成自己需要的時(shí)間類型,下面這篇文章主要給大家介紹了關(guān)于Java中@DateTimeFormat和@JsonFormat注解介紹的相關(guān)資料,需要的朋友可以參考下2022-11-11java中阻塞隊(duì)列和非阻塞隊(duì)列的實(shí)現(xiàn)
在Java并發(fā)編程中,阻塞隊(duì)列和非阻塞隊(duì)列是兩種主要的隊(duì)列類型,分別適用于不同的場景,了解這兩種隊(duì)列的特點(diǎn)和工作機(jī)制,可以幫助開發(fā)者更好地選擇合適的數(shù)據(jù)結(jié)構(gòu)解決并發(fā)問題2024-10-10Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求
這篇文章主要介紹了Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09