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