首頁 Java Java入門 白盒測試框架(JUnit)的使用

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

Nov 29, 2021 am 09:33 AM
junit

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

JUnit框架中註解如何用於測試方法? JUnit框架中註解如何用於測試方法? May 06, 2024 pm 05:33 PM

JUnit框架中的註解用於聲明和配置測試方法,主要註解包括:@Test(聲明測試方法)、@Before(測試方法執行前運行的方法)、@After(測試方法執行後運行的方法)、@ BeforeClass(所有測試方法執行前運行的方法)、@AfterClass(所有測試方法執行後運行的方法),這些註解有助於組織和簡化測試程式碼,並透過提供明確的意圖和配置來提高測試程式碼的可讀性和可維護性。

JUnit單元測試框架:初學者教程 JUnit單元測試框架:初學者教程 Apr 18, 2024 pm 01:51 PM

JUnit是Java的單元測試框架,提供了簡潔的工具來測試應用程式元件。安裝依賴項後,可透過編寫一個包含@Test註解的單元測試類別來測試一個類,並使用assertEquals等斷言方法驗證預期值和實際值。 JUnit提供了許多功能,例如準備方法、失敗訊息和逾時機制。

JUnit單元測試框架在多執行緒環境中的用法 JUnit單元測試框架在多執行緒環境中的用法 Apr 18, 2024 pm 03:12 PM

在多執行緒環境中使用JUnit時,有兩種常見方法:單執行緒測試和多執行緒測試。單執行緒測試在主執行緒上運行,避免並發問題,而多執行緒測試在工作執行緒上運行,需要同步測試方法來確保共享資源不受干擾。常見使用案例包括測試多執行緒安全方法,例如使用ConcurrentHashMap儲存鍵值對,並發執行緒對鍵值對進行操作並驗證其正確性,體現了多執行緒環境中JUnit的應用。

JUnit單元測試框架:使用它的優點和局限性 JUnit單元測試框架:使用它的優點和局限性 Apr 18, 2024 pm 09:18 PM

JUnit單元測試框架是一個廣泛使用的工具,主要優點包括自動化測試、快速回饋、提高程式碼品質和可移植性。但它也有局限性,包括範圍有限、維護成本、依賴性、記憶體消耗和缺乏持續整合支援。對於Java應用程式的單元測試,JUnit是一個強大的框架,提供了許多好處,但使用時需要考慮其限制。

JUnit單元測試框架在Spring專案中的應用 JUnit單元測試框架在Spring專案中的應用 Apr 18, 2024 pm 04:54 PM

JUnit是Spring專案中廣泛使用的Java單元測試框架,可透過以下步驟應用:新增JUnit依賴項:org.junit.jupiterjunit-jupiter5.8.1test編寫測試案例:使用@ExtendWith(SpringExtension.class)啟用擴展,使用@Autowired注入Bean,使用@BeforeEach和@AfterEach準備和清理,用@Test標記測試方法。

JUnit單元測試框架:在調試模式下執行測試案例的技巧 JUnit單元測試框架:在調試模式下執行測試案例的技巧 Apr 18, 2024 pm 03:54 PM

在JUnit中,可以透過以下步驟在偵錯模式下執行測試案例:使用@RunWith註解關聯BlockJUnit4ClassRunner運行器。設定斷點以暫停執行並檢查變數。使用System.out.println()輸出資訊以追蹤程式碼執行。使用JUnitAssert斷言方法驗證預期值和實際值。

JUnit單元測試框架在Java中的最佳實務是什麼? JUnit單元測試框架在Java中的最佳實務是什麼? Apr 18, 2024 pm 09:03 PM

遵循JUnit單元測試框架的最佳實踐可實現有效的程式碼驗證:編寫獨立的測試將測試放在適當的位置使用斷言明智地驗證結果遵循命名約定(test開頭)編寫負面測試使用Mocking和Stubbing隔離依賴項避免使用靜態變數刪除重複程式碼自動化測試執行

JUnit單元測試框架:解決常見記憶體洩漏問題的指南 JUnit單元測試框架:解決常見記憶體洩漏問題的指南 Apr 18, 2024 pm 04:51 PM

JUnit單元測試框架可以有效解決常見的記憶體洩漏問題。常見的洩漏問題包括持久靜態變數參考和未關閉資源。 JUnit提供了洩漏偵測器和分析記憶體佔用情況的工具來定位洩漏源。解決方法包括使用局部變數、弱引用、正確關閉資源和採用try-with-resources語句。透過遵循這些指南,開發人員可以創建可靠且穩定的JUnit測試環境。

See all articles