首頁> Java> Java入門> 主體

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

**
發布: 2021-12-08 19:22:02
原創
3354 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!