精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

單元測試第三彈——使用JUnit進行單元測試

開發 開發工具
本文主要介紹了JUnit的常見用法

上一彈中介紹了單元測試以及單元測試框架(《單元測試第二彈——單元測試與單元測試框架》),這一彈主要來介紹一下JUnit這個目前比較流行的單測框架。

JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試框架(regression testing framework)。Junit測試是程序員測試,即所謂白盒測試,因為程序員知道被測試的軟件如何(How)完成功能和完成什么樣(What)的功能。Junit是一套框架,繼承TestCase類,就可以用Junit進行自動測試了。

現在很多IDE中都已經集成了JUnit,當我們在創建maven項目的時候,一般在pom文件中也會自動增加junit的依賴。

  1. <dependency> 
  2.     <groupId>junit</groupId> 
  3.     <artifactId>junit</artifactId> 
  4.     <scope>test</scope> 
  5.     <version>4.4</version> 
  6. </dependency> 

 

注意上面的maven的依賴中的scope,因為junit只在測試代碼中會被用到,這里scope指定未test即可。我們直接使用和介紹JUnit4。

上手JUnit

要測試,要先有被測代碼(當然,基于測試編程可以先有測試代碼)。先來看我們想要測試的代碼:

  1. public class CaculateService { 
  2.     public float divide(float divisor, float dividend) { 
  3.         return divisor / dividend; 
  4.     } 

我們想要測試這個類,那么如何使用Junit進行測試呢?先來寫一個測試類。如果你使用的是IntelliJ+Mac,那么可以在類名上使用快捷鍵option+enter直接生成測試類,這樣IDE會幫忙生成一個對應的測試類。(其他操作系統和IDE也有同樣的功能)

使用Junit進行測試

生成后的測試代碼和被測代碼所處路徑如下:

使用Junit進行測試

可以看到,一般的maven項目中,會在src/main下面有兩個目錄,java和test,java目錄中放的是源碼,test目錄中放的是測試代碼。測試代碼和測試代碼的包名保持一致即可。

測試代碼如下:

  1. public class CaculateServiceTest { 
  2.     CaculateService caculateService = new CaculateService(); 
  3.     @Test 
  4.     public void testDivide() throws Exception { 
  5.        Assert.assertEquals(caculateService.divide(2, 1), 2.0); 
  6.     } 
  7.  

然后執行該方法就可以了,先不管Assert.assertEquals的用法及結果,這里總結下使用JUnit寫測試代碼的簡單步驟:

  • 創建一個名為 CaculateServiceTest.java 的測試類。
  • 向測試類中添加名為 testDivide() 的方法。
  • 向方法中添加 Annotaion @Test。
  • 執行測試條件并且應用 Junit 的 assertEquals API 來檢查。

JUnit中的Assert

public class Assert extends java.lang.Object

這個類提供了一系列的編寫測試的有用的聲明方法。只有失敗的聲明方法才會被記錄。

(1)void assertEquals(boolean expected, boolean actual)

         檢查兩個變量或者等式是否平衡

(2)void assertFalse(boolean condition)

        檢查條件是假的

(3)void assertNotNull(Object object)

        檢查對象不是空的

(4)void assertNull(Object object)

        檢查對象是空的

(5)void assertTrue(boolean condition)

        檢查條件為真

(6)void fail()

        在沒有報告的情況下使測試不通過

這些方法我就不一一介紹了,相信我的讀者們都能看懂并在平時開發中用的到,還是比較容易理解的。

Assert可以用來判斷方法的真是結果和預期結果是否一樣。是我們在寫單元測試中用到最多的一個api。

JUnit中的注解

  • @BeforeClass:針對所有測試,只執行一次,且必須為static void
  • @Before:初始化方法
  • @Test:測試方法,在這里可以測試期望異常和超時時間
  • @After:釋放資源
  • @AfterClass:針對所有測試,只執行一次,且必須為static void
  • @Ignore:忽略的測試方法

一個單元測試類執行順序為:

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

每一個測試方法的調用順序為:

@Before –> @Test –> @After

時間測試

如果一個測試用例比起指定的毫秒數花費了更多的時間,那么 Junit 將自動將它標記為失敗。timeout 參數和 @Test 注釋一起使用。現在讓我們看看活動中的 @test(timeout)。

  1. @Test(timeout = 1000
  2. public void testTimeoutSuccess() { 
  3.     // do nothing 

異常測試

你可以測試代碼是否它拋出了想要得到的異常。expected 參數和 @Test 注釋一起使用。現在讓我們看看活動中的 @Test(expected)。

  1. @Test(expected = NullPointerException.class) 
  2. public void testException() { 
  3.     throw new NullPointerException(); 

所有測試代碼

代碼地址

  1. package com.hollischuang.effective.unitest.service; 
  2.  
  3. import org.junit.*; 
  4.  
  5. /** 
  6.  * @author Hollis 17/1/7. 
  7.  */ 
  8. public class JUnitTest { 
  9.  
  10.     /** 
  11.      * 只執行一次,在整個類執行之前執行 
  12.      */ 
  13.     @BeforeClass 
  14.     public static void beforeClass() { 
  15.         System.out.println("in before class"); 
  16.     } 
  17.  
  18.     /** 
  19.      * 只執行一次,在整個類執行之后執行 
  20.      */ 
  21.     @AfterClass 
  22.     public static void afterClass() { 
  23.         System.out.println("in after class"); 
  24.     } 
  25.  
  26.     /** 
  27.      * 每個測試方法被執行前都被執行一次 
  28.      */ 
  29.     @Before 
  30.     public void before() { 
  31.         System.out.println("in before"); 
  32.     } 
  33.  
  34.     /** 
  35.      * 每個測試方法被執行后都被執行一次 
  36.      */ 
  37.     @After 
  38.     public void after() { 
  39.         System.out.println("in after"); 
  40.     } 
  41.  
  42.     // test case 1 
  43.     @Test 
  44.     public void testCase1() { 
  45.         System.out.println("in test case 1"); 
  46.     } 
  47.  
  48.     // test case 2 
  49.     @Test 
  50.     public void testCase2() { 
  51.         System.out.println("in test case 2"); 
  52.     } 
  53.  
  54.     /** 
  55.      * 測試assertEquals 
  56.      */ 
  57.     @Test 
  58.     public void testEquals() { 
  59.         Assert.assertEquals(1 + 2, 3); 
  60.     } 
  61.  
  62.     /** 
  63.      * 測試assertTrue 
  64.      */ 
  65.     @Test 
  66.     public void testTrue() { 
  67.         Assert.assertTrue(1 + 2 == 3); 
  68.     } 
  69.  
  70.     /** 
  71.      * 測試assertFalse 
  72.      */ 
  73.     @Test 
  74.     public void testFals() { 
  75.         Assert.assertFalse(1 + 2 == 4); 
  76.     } 
  77.  
  78.     /** 
  79.      * 測試assertNotNull 
  80.      */ 
  81.     @Test 
  82.     public void assertNotNull() { 
  83.         Assert.assertNotNull("not null"); 
  84.     } 
  85.  
  86.     /** 
  87.      * 測試assertNull 
  88.      */ 
  89.     @Test 
  90.     public void assertNull() { 
  91.         Assert.assertNull(null); 
  92.     } 
  93.  
  94.     /** 
  95.      * 測試fail和Ignore 
  96.      */ 
  97.     @Test 
  98.     @Ignore 
  99.     public void assertFail() { 
  100.         Assert.fail(); 
  101.     } 
  102.  
  103.     /** 
  104.      * 測試異常 
  105.      */ 
  106.     @Test(expected = NullPointerException.class) 
  107.     public void testException() { 
  108.         throw new NullPointerException(); 
  109.     } 
  110.  
  111.     /** 
  112.      * 測試時間 
  113.      */ 
  114.     @Test(timeout = 1000
  115.     public void testTimeoutSuccess() { 
  116.         // do nothing 
  117.     } 
  118.  
  119.     /** 
  120.      * 測試時間 
  121.      */ 
  122.     @Test(timeout = 1000
  123.     public void testTimeoutFailed() { 
  124.         while (true) { 
  125.  
  126.         } 
  127.     } 

總結

本文主要介紹了JUnit的常見用法,后面會專門寫一篇文章介紹如何將JUnit和Spring集合到一起。

【本文是51CTO專欄作者Hollis的原創文章,轉載聯系作者本人獲取授權】

 

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-01-16 12:12:29

單元測試JUnit

2017-03-23 16:02:10

Mock技術單元測試

2017-01-14 23:42:49

單元測試框架軟件測試

2013-06-04 09:49:04

Spring單元測試軟件測試

2021-03-28 23:03:50

Python程序員編碼

2011-08-11 13:02:43

Struts2Junit

2023-07-26 08:58:45

Golang單元測試

2009-06-08 19:59:09

EclipseJUnit單元測試

2009-06-08 19:57:29

EclipseJUnit4單元測試

2023-08-02 13:59:00

GoogleTestCTest單元測試

2009-06-08 20:04:06

EclipseJUnit4單元測試

2012-05-17 09:09:05

Titanium單元測試

2020-08-18 08:10:02

單元測試Java

2009-08-19 09:00:48

單元測試框架自動化測試

2015-09-28 15:03:38

網絡架構測試

2021-05-05 11:38:40

TestNGPowerMock單元測試

2024-10-16 16:09:32

2011-11-18 15:18:41

Junit單元測試Java

2020-05-07 17:30:49

開發iOS技術

2011-07-04 18:16:42

單元測試
點贊
收藏

51CTO技術棧公眾號

毛片精品免费在线观看| 在线免费观看日本欧美| 91精品在线国产| 国产亚洲精品久久777777| 影视先锋久久| 欧美一区二区日韩| 久久久噜噜噜www成人网| 2019中文字幕在线视频| 国产91精品精华液一区二区三区| 国产成人精品免高潮费视频| www.超碰在线观看| 国产精品探花在线观看| 日韩免费成人网| 91最新在线观看| 91美女主播在线视频| 国产精品不卡在线| 国产欧美一区二区视频| 国产又粗又黄又爽| 久久国产精品毛片| 欧美精品成人在线| 少妇高潮惨叫久久久久| 欧美日韩看看2015永久免费 | 久久在线观看视频| 欧美大波大乳巨大乳| 红杏视频成人| 91精品啪在线观看国产60岁| www.日日操| 国产传媒在线观看| 亚洲综合视频在线| 五月天色婷婷综合| 自拍视频在线网| 国产日韩视频一区二区三区| 精品一区久久| 黄色a在线观看| 国产一区日韩二区欧美三区| 国产精品久久久久高潮| 无码人妻精品一区二区三区蜜桃91 | 69视频免费看| 免费看黄裸体一级大秀欧美| 久久久久久久97| 全网免费在线播放视频入口 | 精品欧美视频| 欧美日韩黄视频| 亚洲色图38p| 亚洲最大成人| 懂色av中文一区二区三区天美| 欧美黑人在线观看| 手机av在线播放| 亚洲综合一区二区精品导航| 9191国产视频| 日本三级韩国三级欧美三级| 亚洲精品中文字幕在线观看| 福利在线小视频| av网站在线免费看推荐| 亚洲日本va午夜在线影院| 少妇熟女一区二区| 91cn在线观看| 亚洲丰满少妇videoshd| 日本www在线视频| 男人久久天堂| 色呦呦国产精品| 男人天堂成人在线| 欧洲午夜精品| 日韩免费高清视频| 亚洲国产综合视频| 欧美日韩中文一区二区| 久久激情五月丁香伊人| 91久久国产综合| 国产真实久久| 欧美一级免费看| 亚洲高清在线看| 久久69国产一区二区蜜臀| 成人情趣片在线观看免费| 午夜精品久久久久久久99| 成人午夜av电影| 欧美日韩一区二区三| 成人午夜影视| 亚洲狼人国产精品| 99爱视频在线| 亚洲国产91视频| 精品日韩在线一区| 日韩人妻无码精品综合区| 国产精品传媒精东影业在线 | 视频一区二区三| 激情在线小视频| 亚洲成人免费在线观看| 美女喷白浆视频| 日韩三级精品| 国产亚洲视频中文字幕视频| 国产suv精品一区二区68| 99热在线精品观看| 国产精品永久免费观看| 开心激情综合网| 国产精品嫩草久久久久| 欧美精品卡一卡二| 免费成人毛片| 日韩精品视频免费在线观看| 国产精品国产三级国产传播| 国产精品一二| 91精品视频在线看| 神马精品久久| 亚洲精品视频在线| 国产精品无码av无码| 日本精品视频| 在线看日韩欧美| 日韩女同强女同hd| 精品一区二区三区在线播放视频 | 欧美日韩一区二区三区在线免费观看| 日韩不卡一二三| 亚洲aa在线| 九九久久久久99精品| 久久久久亚洲视频| av影院午夜一区| 超级碰在线观看| 开心久久婷婷综合中文字幕 | 香蕉视频网站在线观看| 天天色 色综合| 波多野结衣在线免费观看| 欧美精选一区二区三区| 性视频1819p久久| 国产v片在线观看| 中文字幕在线观看一区二区| 免费高清在线观看免费| 国产丝袜一区| 欧美高清在线观看| 国产日韩一级片| 国产精品嫩草影院av蜜臀| 久久9精品区-无套内射无码| 超碰97久久| 色综合久综合久久综合久鬼88 | 亚洲欧美在线免费| 国产精品成人国产乱| 国产成人激情av| 香蕉视频免费版| 日韩精品一级毛片在线播放| 中文字幕精品www乱入免费视频| 国产a∨精品一区二区三区仙踪林| 夫妻av一区二区| 成人免费a级片| 日韩精品中文字幕吗一区二区| 久久综合伊人77777蜜臀| 一级片免费观看视频| 中文欧美字幕免费| 国产视频1区2区3区| 日韩精品一区二区久久| 国产欧美精品日韩精品| 午夜在线视频播放| 欧美精品一卡两卡| 四虎永久免费在线| 国产激情偷乱视频一区二区三区| 中文字幕综合在线观看| 欧美片网站免费| 欧美黑人性视频| 天天综合在线视频| 色综合天天综合网天天看片| 91网站免费视频| 日韩av在线播放中文字幕| 亚洲一区二区三区在线观看视频| 久久亚洲人体| 欧美大片大片在线播放| 日本高清视频免费观看| 亚洲国产精品精华液网站| 182在线视频| 久久国产精品99国产| 亚洲第一综合| 国产精品美女久久久久人| 色综合天天狠天天透天天伊人| 四虎免费在线观看| 色一区在线观看| 国精产品一区一区| 国产91丝袜在线观看| 91成人在线观看喷潮教学| 国产一区二区精品久| 91精品美女在线| 国产精品一品| 亚洲天堂久久av| 国产婷婷一区二区三区久久| 午夜影院久久久| 性欧美精品男男| 国产福利一区二区三区视频 | 久99久精品视频免费观看| 青青草原网站在线观看| 日韩高清在线免费观看| 国产精品久久久久久久久久 | 亚洲一区二区三区四区五区中文 | 韩国av免费在线| 一本大道久久a久久精二百| 熟女av一区二区| www.欧美日韩国产在线| 日本美女高潮视频| 欧美国产先锋| 日韩欧美亚洲精品| 欧美国产中文高清| 国产精品久久久久久久久久99| 影音先锋男人资源在线| 国产亚洲xxx| 成人福利小视频| 欧美日韩一区二区电影| 日韩av男人天堂| 亚洲色图视频免费播放| 国产免费看av| 国产99久久久久| 小明看看成人免费视频| 亚洲综合丁香| 国产日韩欧美大片| 成人3d动漫在线观看| 国产亚洲精品自在久久| 不卡精品视频| 国产成人中文字幕| av2020不卡| 欧美成人一区二区三区电影| аⅴ资源新版在线天堂| 日韩高清a**址| www.桃色av嫩草.com| 欧美日韩中文一区| 亚洲黄网在线观看| 午夜精品免费在线| 欧美成人手机视频| 亚洲三级在线观看| 欧美极品jizzhd欧美18| 久久精品视频免费观看| 99久久免费看精品国产一区| 国产黑丝在线一区二区三区| 欧美在线aaa| 日本成人在线电影网| 日韩黄色片视频| 日韩网站在线| 蜜桃传媒一区二区三区| 狠狠色狠狠色综合日日tαg| 警花观音坐莲激情销魂小说| 亚洲国产不卡| 中文字幕av导航| 99国产**精品****| 中文精品视频一区二区在线观看| 台湾佬综合网| 好吊妞www.84com只有这里才有精品| 欧洲一区在线| 97久久夜色精品国产九色| 国产精品igao视频网网址不卡日韩| 国产九九精品视频| 成人午夜亚洲| 国产中文字幕91| 亚洲国产天堂| 91香蕉嫩草影院入口| 精品乱码一区二区三区四区| 国产欧美一区二区| 日日夜夜综合| 亚洲一区二区日本| 亚洲精品影片| 国产精品久久精品视| 红杏aⅴ成人免费视频| 精品欧美一区二区三区久久久| 日韩最新在线| 日韩av免费电影| 久久免费av| 性生活免费观看视频| 激情偷拍久久| 人妻有码中文字幕| 久久精品国内一区二区三区 | 99免费精品视频| 国产精品第七页| 久久精品视频免费| 国精品人伦一区二区三区蜜桃| 亚洲男人天堂av网| 国产在线观看成人| 色欧美片视频在线观看| 一级片免费观看视频| 日韩欧美国产三级电影视频| 色婷婷激情五月| 国产一区二区三区在线观看网站 | 亚洲一区视频在线| 成人午夜视频在线播放| 欧美调教femdomvk| ,一级淫片a看免费| 日韩一区二区三免费高清| 天堂8在线视频| 亚洲欧美日韩网| 成人在线直播| 欧美专区中文字幕| 羞羞视频在线观看一区二区| 国产精品一区而去| 欧美日韩有码| 搞av.com| 免费在线看一区| 蜜臀av粉嫩av懂色av| 国产欧美精品国产国产专区 | 91久久国产最好的精华液| 97久久人国产精品婷婷| 亚洲国产精品久久久久秋霞蜜臀| 岛国视频免费在线观看| 欧美成人高清视频| 欧美不卡高清一区二区三区| 亚洲专区国产精品| 蜜臀av免费一区二区三区| 女女百合国产免费网站| 媚黑女一区二区| 中文字幕在线视频一区二区| 久久综合久久鬼色中文字| 波多野结衣家庭教师| 日本高清无吗v一区| 亚洲国产成人在线观看| 在线丨暗呦小u女国产精品| 91av久久| 亚洲影影院av| 日韩精品久久久久久久电影99爱| 黄色一级视频片| 国产福利一区二区| 久草手机视频在线观看| 色88888久久久久久影院野外 | 精品国产麻豆| 天天爽天天狠久久久| 国产婷婷精品| 制服丝袜av在线| 亚洲欧洲av在线| 亚洲精品国产欧美在线观看| 日韩av在线免播放器| 男人天堂亚洲天堂| 亚洲一区二区免费| 欧美黄色大片在线观看| 午夜激情在线观看视频| 26uuu国产在线精品一区二区| 久久香蕉精品视频| 欧美一区二区三区性视频| 香蕉视频网站在线观看| 国产精品久久久久久一区二区| 三级小说欧洲区亚洲区| 欧美中日韩在线| 国产精品羞羞答答xxdd| 午夜剧场免费在线观看| 欧美精品久久99久久在免费线| 国产在线播放av| 国产福利视频一区| 中文精品一区二区| 啊啊啊一区二区| 91亚洲精品久久久蜜桃网站| 国产情侣在线视频| 亚洲国产精品字幕| 99re6在线精品视频免费播放| 国产女主播一区二区| 激情欧美日韩| 漂亮人妻被黑人久久精品| 亚洲综合色自拍一区| 日韩永久免费视频| 97视频在线观看成人| 啪啪激情综合网| 国产l精品国产亚洲区久久| 久久精品亚洲乱码伦伦中文 | 日韩精品中文字幕在线一区| 神马午夜伦理不卡 | 亚洲影视在线播放| 蜜桃视频污在线观看| 久久久久亚洲精品| 欧美变态挠脚心| 成人性生生活性生交12| 亚洲国产精品99久久久久久久久 | 精品国产免费人成在线观看| 国产羞羞视频在线播放| 国产一区在线观| 久久久www| 夫妻性生活毛片| 日韩女优av电影在线观看| 成人高潮aa毛片免费| 久中文字幕一区| 捆绑变态av一区二区三区| 欧美做爰爽爽爽爽爽爽| 亚洲国产精品字幕| 欧美123区| 欧洲xxxxx| 91免费看`日韩一区二区| 无码人妻黑人中文字幕| 久久影视免费观看| 青青一区二区| 蜜臀一区二区三区精品免费视频| 一区二区三区美女视频| 你懂的好爽在线观看| 国产精品专区一| 在线看片成人| 成人激情五月天| 欧美一区二区视频在线观看 | 91精品国产综合久久香蕉的用户体验| 欧美韩日精品| 五月天综合视频| 日韩一区二区精品| 欧美人体一区二区三区| 久久视频免费在线| 2020国产精品久久精品美国| 一级特黄色大片| 欧美一区二区三区……| 成人3d动漫在线观看| 在线精品视频播放| 欧美日韩亚洲国产综合| 91av久久| 欧洲精品视频在线| 国产精品丝袜一区| 婷婷丁香花五月天| 99国产在线观看| 日本女优在线视频一区二区| 国产精品成人久久| 久久香蕉国产线看观看网| 亚洲裸色大胆大尺寸艺术写真|