首頁  >  文章  >  Java  >  白盒測試框架(JUnit)的使用

白盒測試框架(JUnit)的使用

**
**原創
2021-11-29 09:33:243522瀏覽

Junit框架:

Junit是開源的java單元測試框架。

今天我們來介紹junit5,junit5由三個不同的子專案模組組成,包括Junit Platform、Junit Jupiter和Junit Vintage。它支援Java8以及以上版本,編輯器我在這裡使用的是IntelliJ IDEA,只需要查看最後結果,就知道整個專案的方法介面是否通暢。每個單元測試用例相對獨立,由Junit 啟動,自動呼叫。不需要新增額外的呼叫語句。

添加,刪除,屏蔽測試方法,不影響其他的測試方法。

Junit主要用於做白盒測試,白盒測試操作步驟如下:

1、測試計畫階段:根據需求說明書,制定測試進度。

2、測試設計階段:根據程式碼的功能,手動設計測試案例進行基本功能測試。依據程式設計說明書,依照一定規範化的方法進行軟體結構劃分和設計測試案例。

3、測試執行階段:輸入測試案例,得到測試結果。

4、測試總結階段:對比測試的結果和程式碼的預期結果,分析錯誤原因,找到並解決錯誤。

接下來我們介紹裡面的註解:

@Test:表示測試方法,不用宣告任何屬性。

@ParameterizedTest:表示方法是測試方法,此外註解還可以讓一個測試方法使用不同的人參與多次運行。

@RepeatedTest:此註解可讓測試方法自訂重複執行次數。

@TestFactory:表示一個方法是基於資料驅動的動態測試資料來源。

@Displayname:宣告測試類別或測試方法的自訂顯示名稱。

@BeforeEach:表示在每一個測試方法運行前,都執行該指定方法。

@AfterEach:表示在每一個測試方法運行後,都執行該指定方法。

@BeforeAll:在目前類別的所有測試方法之前執行,此方法可以包含一些初始化程式碼。

@AfterAll:在目前類別的所有測試方法之後執行。

@Disabled:註明一個測試類別或方法無效。

斷言:

Fail:斷言測試失敗。

AssertTrue/asserFalse:斷言真或假。

AssertNull/assertNotNull:斷言為空或不為空。

assertEquals/assertNotEquals:斷言兩個值相不相等。

AssertArrayEquals:斷言陣列元素全部相同。

AssertSame/assertNotSame:斷言兩個物件是否相同。

AssertThrows/assertDoesNotThrow:斷言是否拋出例外。

AssertAll:斷言多個條件均滿足;

下面我們建立一個類,建立幾個方法:

package test;//包机制
import java.lang.reflect.Array;
public class MixedOperation {
    public int mixeOperation(int x,int y){
        return division((x+y),y);
    }
    public int division(int x,int y){
        int result=(x/y);
        return result;
    }
    public static void main(String[] args) {
      MixedOperation mixedOperation=new MixedOperation();
      System.out.println(mixedOperation.mixeOperation(5,1));
    }
}

我們建立了一個名為MixedOperation的類別;

package test;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
public class MixedOperationTest {
    private MixedOperation mixedOperation;
    @BeforeEach
    public void init(){
      mixedOperation=new MixedOperation();
    }
    @Test
    public void successTest(){
        System.out.println("run a test:x=4,y=2");
        int result=mixedOperation.mixeOperation(4,2);
        Assertions.assertEquals(3,result);
    }
   /* @DisplayName("失败")
    public void errorTest(){`
        System.out.println("run a test:x=4,y=0");
        ArithmeticException exception=new ArithmeticException(
                ArithmeticException.class -> {
            mixedOperation.mixeOperation(4, 0);
        }
        );
    }*/
    @Disabled("参数")
    @Test
    @DisplayName("参数")
    @ParameterizedTest
    @CsvSource({"6,3,3","5,2,3","6,2,4"})
    public void caTest(int x,int y,int excepted){
        System.out.println("run a test :x="+x+"y="+y);
        System.out.println(excepted);
        int t= mixedOperation.mixeOperation(x,y);
        Assertions.assertEquals(excepted,t);
    }
    @Disabled
    @Test
    public void  Next(){
       System.out.println("抛出一个异常");
       System.out.println(Assertions.assertThrows(IllegalArgumentException.class, () ->mixedOperation.mixeOperation(2,0)));
    }
    @Disabled
    @Test
    void error(){
        Assertions.assertThrows(Exception.class,()->{Assertions.assertEquals(1,0);});
    }
    @Test
    void sure(){
        int result=mixedOperation.mixeOperation(4,2);
        Assertions.assertTrue(3==result);//断言相等
    }
}

這是我們創建一個名為MixedOperationTest的測試類別;

 相關推薦:《java影片教學

以上是白盒測試框架(JUnit)的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn