【Java】Junit快速入門


Junit介紹

  JUnit是一個Java語言的單元測試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源於Kent Beck的sUnit的xUnit家族中最為成功的一個。 JUnit有它自己的JUnit擴展生態圈。多數Java的開發環境都已經集成了JUnit作為單元測試的工具。 

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

Junit簡單使用

  1、新建一個普通的maven工程,引入依賴

1 <dependency>
2     <groupId>junit</groupId>
3     <artifactId>junit</artifactId>
4     <version>4.12</version>
5 </dependency>

 

  2、新建一個測試類JunitTest.java,並且寫一個無入參,無返回值的普通方法,在方法上加上注解@Test,如下

 1 package com.test.junite;
 2 
 3 import org.junit.Test;
 4 
 5 public class JunitTest {
 6 
 7     @Test
 8     public void testJunit(){
 9         System.out.println("測試Junit,簡單使用...");
10     }
11 }

 

  3、測試結果

    

Junit常用注解

  1、與測試流程相關的4個注解

 1 package com.test.junite;
 2 
 3 import org.junit.After;
 4 import org.junit.AfterClass;
 5 import org.junit.Before;
 6 import org.junit.BeforeClass;
 7 import org.junit.Test;
 8 
 9 public class JunitFlowTest {
10 
11     /**
12      * 1、@BeforeClass修飾的方法會在所有方法被調用前被執行
13      * 而且該方法是靜態的,所有當測試類被加載后接着就會運行它
14      * 而且在內存中它只會存在一份實例,它比較適合加載配置文件
15      * 2、@AfterClass所修飾的方法通常用來對資源的清理,如關閉數據庫的連接
16      * 3、@Before和@After會在每個測試方法的前后各執行一次
17      * 
18      */
19     
20     @BeforeClass
21     public static void setUpBeforeClass() throws Exception {
22         System.out.println("this is @BeforeClass ...");
23     }
24 
25     @AfterClass
26     public static void tearDownAfterClass() throws Exception {
27         System.out.println("this is @AfterClass ...");
28     }
29 
30     @Before
31     public void setUp() throws Exception {
32         System.out.println("this is @Before ...");
33     }
34 
35     @After
36     public void tearDown() throws Exception {
37         System.out.println("this is @After ...");
38     }
39 
40     @Test
41     public void test1() {
42         System.out.println("this is test1 ...");
43     }
44     
45     @Test
46     public void test2() {
47         System.out.println("this is test2 ...");
48     }
49 
50 }

 

    運行結果如下:

      

  2、與@Test相關的

 1 package com.test.junite;
 2 
 3 import static org.junit.Assert.assertEquals;
 4 
 5 import org.junit.Ignore;
 6 import org.junit.Test;
 7 
 8 public class AnnotationTest {
 9 
10     /**
11      * @Test:將一個普通的方法修飾成為一個測試方法
12      *     @Test(expected=XX.class)
13      *     @Test(timeout=毫秒)
14      * @BeforeClass:它會在所有方法運行前被執行,static修飾
15      * @AfterClass:它會在所有方法運行后被執行,static修飾
16      * @Before:會在每一個測試方法運行前被執行一次
17      * @After:會在每一個測試方法運行后被執行一次
18      * @Ignore:所修飾的測試方法會測試運行器被忽略
19      * @RunWiht:可以更改測試運行器 org.junit.runner.Runner
20      */
21     @Test(expected=ArithmeticException.class)
22     public void testDivide() {
23         assertEquals(3, 3 / 0);
24     }
25     
26     @Test(timeout=2000)
27     public void testTimeout() {
28         while (true) {
29             System.out.println("run forever ...");
30         }
31     }
32     
33     @Ignore
34     @Test
35     public void testIgnore() {
36         System.out.println("this is testIgnore ...");
37     }
38 }

Junit測試類編寫原則

  1、測試方法必須使用@Test進行修飾

  2、測試方法必須使用public void 進行修飾,不能帶任何參數

  3、新建一個源碼目錄來存放我們的測試代碼

  4、測試類的包應該和被測試類保持一致

  5、測試單元中的每個方法必須可以獨立測試,測試方法間不能有任何依賴

  6、測試類使用Test作為類名后綴(非必須)

  7、測試方法使用test作為方法前綴(非必須)

 


免責聲明!

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



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