怎樣在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時,如下圖操作(下載添加):

 

 

 

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

 

 

  現在可以通過右鍵菜單在這個類上運行'***測試類名**'來進行測試,或通過Run → Edit Configurations來進行。

 

 

3.    JUnit常用斷言及注解

 

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

斷言核心方法

注解

 

 

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

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

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

    @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/

感謝您的閱讀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM