怎樣在IDEA中使用JUnit4和JUnitGenerator V2.0自動生成測試模塊

   由於項目的須要,因此研究了一下自動生成測試代碼。將經驗記錄下來,總會有用的。我我的認爲,好記性不如多作筆記多反思總結。數據庫

1.    前提條件

  • 開發環境已正確配置
  • 工程已解決JUnit依賴關係(pom.xml)
  • 我用的是4.12版本:
    1 <dependency>
    2     <groupId>junit</groupId>
    3     <artifactId>junit</artifactId>
    4     <version>4.12</version>
    5 </dependency>

     

 

2.    IDEA中JUnit配置

  打開Settings窗口搜索junit,如圖(兩個插件都勾選添加):微信

 

  JUnitGenerator V2.0插件,能夠幫助咱們自動生成測試代碼。若是搜索junit沒有JUnitGenerator V2.0時,以下圖操做(下載添加):ide

 

 

 

  調用模板的方法(Alt+Insert)默認測試全部全部方法。若想要動態個性化生成,能夠在所要測試的類頁面上,使用該快捷操做Ctrl + Shift + T,以下圖個性化設置:函數

 

 

  如今能夠經過右鍵菜單在這個類上運行'***測試類名**'來進行測試,或經過Run → Edit Configurations來進行。單元測試

 

 

3.    JUnit經常使用斷言及註解

 

  JUnit爲咱們提供了一些輔助函數,他們用來幫助咱們肯定被測試的方法是否按照預期的效果正常工做,一般,把這些輔助函數稱爲斷言。測試

斷言核心方法this

註解spa

 

 

  一個測試類單元測試的執行順序爲:插件

    @BeforeClass –> @Before –> @Test –> @After –> @AfterClasscode

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

    @Before –> @Test –> @After

 

  代碼示例:

 1 public class JunitFlowTest {  2     /* *  3  *1. @BeforeClass修飾的方法會在全部方法被調用前被執行,  4  * 並且該方法是靜態的,因此當測試類被加載後接着就會運行它,  5  * 並且在內存中它只會存在一份實例,它比較適合加載配置文件。  6  * 2. @AfterClass所修飾的方法一般用來對資源的清理,如關閉數據庫的鏈接  7  * 3. @Before和@After會在每一個測試方法的先後各執行一次。  8  * */ 
 9  @BeforeClass 10     public static void setUpBeforeClass() throws Exception { 11         System.out.println("this is beforeClass..."); 12  } 13  @AfterClass 14     public static void tearDownAfterClass() throws Exception { 15         System.out.println("this is afterClass..."); 16  } 17  @Before 18     public void setUp() throws Exception { 19         System.out.println("this is before..."); 20  } 21     
22     /**
23  * 即便在@Before註解方法、@Test註解方法中拋出了異常, 24 * 全部的@After註解方法依然會被執行 25     */
26  @After 27     public void tearDown() throws Exception { 28         System.out.println("this is after"); 29  } 30     
31     /* * 32  * 33  * 1. Failure通常由單元測試使用的斷言方法判斷失敗所引發的, 34 * 這經表示測試點發現了問題 35  * ,就是說程序輸出的結果和咱們預期的不同。 36  * 2. error是由代碼異常引發的,它能夠產生於測試代碼自己的錯誤, 37 * 也能夠是被測試代碼中的 38  * 一個隱藏的bug 39  * 3.測試用例不是用來證實你是對的,而是用來證實你沒有錯。 40     */ 
41  @Test 42     public void testAdd() { 43         assertEquals(5, new Calculate().add(3,3)); 44  } 45  @Test 46     public void testDivide() { 47         assertEquals(3, new Calculate().divide(6, 0)); 48  } 49 
50 }

 

<!-- Start -->

獲知及時信息,請關注個人我的微信訂閱號:0與1的那點事

 

<!-- End -->

 

本文爲博主原創文章,轉載請註明出處!

http://www.cnblogs.com/libingbin/

感謝您的閱讀。

相關文章
相關標籤/搜索