精品欧美一区二区三区在线观看 _久久久久国色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日韩免费| 91精品国产麻豆| 奇米影视亚洲色图| 成年人在线观看视频| 狠狠色丁香婷综合久久| 97国产精品免费视频| 蜜臀久久99精品久久久久久| 国产精品久久久久久久久久辛辛 | 337p日本欧洲亚洲大胆色噜噜| 色欲av无码一区二区人妻| 黄视频在线观看网站| 久久亚区不卡日本| 都市激情久久久久久久久久久| 69av视频在线观看| 最新亚洲一区| 久久视频在线播放| 亚洲午夜久久久久久久国产| 97品白浆高清久久久久久| 一本久久综合亚洲鲁鲁五月天| 中文字幕第50页| av在线三区| 91看片淫黄大片一级在线观看| 51国偷自产一区二区三区| 国产午夜无码视频在线观看| 亚洲精品字幕| 欧美黄色性视频| 国产中文av在线| 欧美日韩国产高清电影| 日韩精品有码在线观看| 四虎精品一区二区| 一区二区三区视频播放| 777午夜精品视频在线播放| 日本999视频| 午夜日韩成人影院| 欧美日韩一区二区精品| 国产日韩欧美精品在线观看| 91三级在线| 亚洲三级在线播放| 国产精品av免费| 永久免费av在线| 国产精品亲子伦对白| 秋霞在线观看一区二区三区| 日韩精品视频无播放器在线看| 成人av片在线观看| 国产九区一区在线| 殴美一级特黄aaaaaa| 高清shemale亚洲人妖| 91国产在线播放| 国产av无码专区亚洲av| 国产麻豆视频一区| 成人在线看片| 精品人妻少妇AV无码专区| 国产精品中文字幕日韩精品| 51成人做爰www免费看网站| 亚洲精品18p| a亚洲天堂av| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 在线免费不卡电影| 国产自偷自偷免费一区 | 欧美伊人久久久久久久久影院 | 亚洲天堂手机在线| 久久99国产乱子伦精品免费| 91精品啪aⅴ在线观看国产| 国产美女三级无套内谢| 国产精品一二一区| 国产精品一区视频网站| 日本福利片高清在线观看| 久久久久久电影| 亚洲区一区二区三区| 黄av在线播放| 午夜欧美视频在线观看| 国产无套内射久久久国产| 精品三区视频| 日韩天堂在线观看| 黄色短视频在线观看| 国产精品亚洲片在线播放| 日韩中文在线中文网在线观看| 国产黄色的视频| 亚洲精选在线| 国产精品亚洲综合天堂夜夜| av免费观看网址| 91视频在线观看免费| 亚洲精品人成| 女同一区二区免费aⅴ| 欧美日韩一区二区在线播放| 九色porny自拍| 北条麻妃一区二区三区在线观看| 亚洲免费视频观看| 久久国产波多野结衣| 99riav1国产精品视频| 国产精品69精品一区二区三区| 国产精品久久久久久久久久久久久久久久 | 国产精品一区二区三| 精品国产一级片| 久久久精品免费观看| 国产精品免费看久久久无码| 国产在线美女| 欧美一区二区三区白人| 一区二区精品免费| 亚洲高清在线| 国产伦精品免费视频| 天天综合网在线观看| 中文字幕不卡在线观看| 每日在线观看av| 999久久久国产999久久久| 亚洲电影中文字幕| 日本黄色免费片| 日韩av一二三| 精品国产综合久久| 天堂av中文在线| 欧美日韩一区三区| 黄色片视频免费观看| 欧美一区久久| 国产日本欧美一区二区三区| 四虎影视精品成人| 亚洲中国最大av网站| 色天使在线观看| 免费一区二区三区视频导航| 久久久久久av| av免费观看网址| 国产精品福利在线播放| 国产精品天天av精麻传媒| 美女一区2区| 欧美国产乱视频| www日本高清| 亚洲三级视频在线观看| 色一情一区二区| 色婷婷热久久| 国产精品美女呻吟| 波多野结衣在线网站| 色综合久久综合网97色综合| 男人网站在线观看| 极品少妇一区二区三区| 99热国产免费| 亚洲大胆人体大胆做受1| 欧美一区二区视频在线观看2022| 成年人免费视频播放| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产黄色三级网站| 亚洲午夜av| 国产精品美女诱惑| 超碰在线99| 亚洲国产成人精品电影| 丰满少妇乱子伦精品看片| 成人免费看的视频| 人妻少妇精品无码专区二区 | 日韩成人性视频| 男女视频免费看| 91在线视频18| 国产日产欧美视频| 精品久久91| 国产免费亚洲高清| 国产视频中文字幕在线观看| 欧美肥胖老妇做爰| avtt天堂在线| 播五月开心婷婷综合| 亚洲中文字幕无码不卡电影| 国产综合久久久| 国产欧美日韩精品丝袜高跟鞋| 日本电影全部在线观看网站视频 | 五月婷婷六月激情| 欧美日韩亚洲91| 精品国产成人亚洲午夜福利| 蜜臀久久99精品久久久久久9| 亚洲第一综合网站| 网站一区二区| 国产91精品久久久久久久| 国产在线91| 69堂国产成人免费视频| 久久久久久蜜桃| 久久久精品tv| 看看黄色一级片| 亚洲视频高清| 久久爱av电影| 青娱乐极品盛宴一区二区| 欧美精品一区在线播放| 你懂的在线看| 欧美一级二级三级蜜桃| 日韩字幕在线观看| 国产拍欧美日韩视频二区| www.色.com| 久久xxxx| 国产高清不卡无码视频| 你懂的视频欧美| 91精品国产综合久久久久久蜜臀 | 国产精品精品国产一区二区| 官网99热精品| 欧美少妇激情| 992tv成人免费影院| 亚洲免费视频一区二区三区| 欧美变态凌虐bdsm| 国产又粗又猛又爽又| 夜夜操天天操亚洲| 国产精品理论在线| av电影一区二区| 午夜一级免费视频| 亚洲一区观看| 日本精品福利视频| 成人a'v在线播放| 精品一区二区三区国产| 国产剧情一区二区在线观看| 日韩av免费在线看| 51精品视频| 美女精品视频一区| 成人在线观看网站| 日韩大陆欧美高清视频区| 国产999久久久| 欧美日韩精品一区二区| 69视频免费在线观看| 亚洲图片欧美色图| 顶臀精品视频www| 欧美国产亚洲另类动漫| 久久久久亚洲av成人网人人软件| 美女看a上一区| av观看免费在线| 国产日韩免费| 日韩极品视频在线观看 | jizzjizzxxxx| 极品日韩av| 免费cad大片在线观看| 91欧美日韩| 亚洲一区三区| blacked蜜桃精品一区| 免费国产一区| 日韩系列在线| 国内精品久久国产| 精品国产一区二区三区成人影院| 97人人模人人爽人人少妇| 99精品国产九九国产精品| 国产精品xxx视频| 88xx成人免费观看视频库| 国产97在线|亚洲| 在线一区av| 欧洲日本亚洲国产区| 日韩伦理福利| 清纯唯美亚洲综合| 韩国成人漫画| 国产精品欧美久久久| 影音成人av| 国产精自产拍久久久久久蜜| 国产亚洲人成a在线v网站| 国产精品偷伦视频免费观看国产 | 91精品少妇一区二区三区蜜桃臀| 亚洲国产高清在线观看视频| 成年人在线免费看片| 中文字幕av不卡| 日本精品久久久久中文| 中文字幕日韩精品一区| 蜜臀av午夜精品久久| 亚洲精品一二三四区| 一区视频免费观看| 亚洲电影一级黄| 在线观看日本视频| 欧美无砖专区一中文字| 一区二区三区精彩视频| 欧美一区二区免费观在线| 亚洲第一黄色片| 日韩av网站大全| 国产在线视频网站| www日韩中文字幕在线看| 影音先锋男人资源在线| 久久久久久久久久久91| 欧亚av在线| 国产精品自拍偷拍| av综合网页| 日本一区二区三区视频在线播放 | 久久69精品久久久久久久电影好 | 欧美日韩一二三四五区| 中文字幕视频二区| 日韩一区二区三区高清免费看看| 日韩一级片免费看| 伊人久久久久久久久久| 宅男在线观看免费高清网站| 91tv亚洲精品香蕉国产一区7ujn| 亚洲色图都市激情| 久久精品青草| 亚洲人精品午夜射精日韩 | 五月天国产视频| 不卡一区二区在线| 国产一区二区三区精品在线| 亚洲欧美日韩国产中文在线| 日本三级片在线观看| 欧美性受xxxx黑人xyx性爽| 精品久久久久中文慕人妻| 国产丝袜一区二区| 国产精品久久麻豆| 日本精品中文字幕| 久久久久毛片免费观看| 久久综合一区二区三区| 我不卡影院28| 欧洲av无码放荡人妇网站| 国产精品77777竹菊影视小说| 亚洲午夜久久久久久久久红桃| 最新国产精品久久精品| 国产无遮挡呻吟娇喘视频| 91精品久久久久久久久99蜜臂| 艳母动漫在线看| 欧美成人免费视频| 国产黄色精品| 裸体丰满少妇做受久久99精品| 亚洲精品网址| www.亚洲高清| 久久综合久久综合亚洲| 国产午夜精品一区二区理论影院 | 超碰caoprom| 国产精品麻豆久久久| 欧美精品韩国精品| 亚洲成人黄色在线| 91福利国产在线观看菠萝蜜| 国产精品久久久久久久久影视| 女同久久另类99精品国产| 国产手机视频在线观看| 日韩黄色免费电影| 国产肉体xxxx裸体784大胆| 亚洲精品免费一二三区| 一区精品在线观看| 亚洲色图偷窥自拍| 在线天堂新版最新版在线8| 动漫3d精品一区二区三区 | 久久久久久久影院| 精品国产18久久久久久二百| 亚洲ai欧洲av| 日本中文字幕一区二区视频| 成人h动漫精品一区| 亚洲v中文字幕| 人妻与黑人一区二区三区| 欧美高清在线观看| 亚洲日本va午夜在线电影| 99re99热| 国产一区二区毛片| 麻豆明星ai换脸视频| 91精品在线一区二区| 国产淫片在线观看| 亚洲www在线| 中文字幕乱码亚洲无线精品一区| 国产美女18xxxx免费视频| 国产精品不卡在线| 国产精品久久久久久在线| 日韩中文字幕网址| 999色成人| 丰满人妻一区二区三区53号| 国产一区二区不卡老阿姨| 国产精品久久久久久久精| 日韩精品在线看片z| 国产三线在线| 久久久久资源| 日本最新不卡在线| 天堂网av2018| 欧美一级夜夜爽| 黄色影院在线看| 国产无套精品一区二区| 久久午夜精品一区二区| 1024手机在线观看你懂的| 欧美日韩另类一区| 91在线中文| 久久天天狠狠| 奇米777欧美一区二区| 国产色无码精品视频国产| 欧美mv和日韩mv国产网站| 欧洲一区精品| 日韩片电影在线免费观看| 精品在线视频一区| 久久免费视频6| 亚洲精品资源美女情侣酒店| 日韩不卡在线| 今天免费高清在线观看国语| 成人精品免费视频| 国产第一页在线观看| 久久伊人色综合| 色先锋久久影院av| 亚洲老女人av| 亚洲激情在线激情| 暖暖视频在线免费观看| 成人久久18免费网站图片| 亚洲精品麻豆| 欧美性猛交xxxx乱| 91精品国产综合久久精品麻豆| 美女的胸无遮挡在线观看| 色女孩综合网| 成人小视频在线观看| 中文字幕日韩免费| 欧美高清视频在线播放| 国产探花在线精品| 美女流白浆视频| 在线看国产日韩| 美女精品导航| 日韩av高清| 成人免费三级在线| 一级特黄录像免费看| 国产91精品高潮白浆喷水| 婷婷久久一区| 无码熟妇人妻av| 日韩限制级电影在线观看| 久久99国产精品二区高清软件| 亚洲人成无码网站久久99热国产| 国产精品五月天| 日本一级在线观看| 97av影视网在线观看|