国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

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

Nov 29, 2021 am 09:33 AM
junit

Junit框架:

Junit是開(kāi)源的java單元測(cè)試框架。

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

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

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

1、測(cè)試計(jì)畫階段:根據(jù)需求說(shuō)明書,制定測(cè)試進(jìn)度。

2、測(cè)試設(shè)計(jì)階段:根據(jù)程式碼的功能,手動(dòng)設(shè)計(jì)測(cè)試案例進(jìn)行基本功能測(cè)試。依據(jù)程式設(shè)計(jì)說(shuō)明書,依照一定規(guī)範(fàn)化的方法進(jìn)行軟體結(jié)構(gòu)劃分和設(shè)計(jì)測(cè)試案例。

3、測(cè)試執(zhí)行階段:輸入測(cè)試案例,得到測(cè)試結(jié)果。

4、測(cè)試總結(jié)階段:對(duì)比測(cè)試的結(jié)果和程式碼的預(yù)期結(jié)果,分析錯(cuò)誤原因,找到並解決錯(cuò)誤。

接下來(lái)我們介紹裡面的註解:

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

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

@RepeatedTest:此註解可讓測(cè)試方法自訂重複執(zhí)行次數(shù)。

@TestFactory:表示一個(gè)方法是基於資料驅(qū)動(dòng)的動(dòng)態(tài)測(cè)試資料來(lái)源。

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

@BeforeEach:表示在每一個(gè)測(cè)試方法運(yùn)行前,都執(zhí)行該指定方法。

@AfterEach:表示在每一個(gè)測(cè)試方法運(yùn)行後,都執(zhí)行該指定方法。

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

@AfterAll:在目前類別的所有測(cè)試方法之後執(zhí)行。

@Disabled:註明一個(gè)測(cè)試類別或方法無(wú)效。

斷言:

Fail:斷言測(cè)試失敗。

AssertTrue/asserFalse:斷言真或假。

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

assertEquals/assertNotEquals:斷言兩個(gè)值相不相等。

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

AssertSame/assertNotSame:斷言兩個(gè)物件是否相同。

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

AssertAll:斷言多個(gè)條件均滿足;

下面我們建立一個(gè)類,建立幾個(gè)方法:

package test;//包機(jī)制
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));
    }
}

我們建立了一個(gè)名為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("參數(shù)")
    @Test
    @DisplayName("參數(shù)")
    @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("拋出一個(gè)異常");
       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);//斷言相等
    }
}

這是我們創(chuàng)建一個(gè)名為MixedOperationTest的測(cè)試類別;

?相關(guān)推薦:《java影片教學(xué)

以上是白盒測(cè)試框架(JUnit)的使用的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

JUnit單元測(cè)試框架:使用它的優(yōu)點(diǎn)和局限性 JUnit單元測(cè)試框架:使用它的優(yōu)點(diǎn)和局限性 Apr 18, 2024 pm 09:18 PM

JUnit單元測(cè)試框架是一個(gè)廣泛使用的工具,主要優(yōu)點(diǎn)包括自動(dòng)化測(cè)試、快速回饋、提高程式碼品質(zhì)和可移植性。但它也有局限性,包括範(fàn)圍有限、維護(hù)成本、依賴性、記憶體消耗和缺乏持續(xù)整合支援。對(duì)於Java應(yīng)用程式的單元測(cè)試,JUnit是一個(gè)強(qiáng)大的框架,提供了許多好處,但使用時(shí)需要考慮其限制。

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

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

JUnit單元測(cè)試框架:初學(xué)者教程 JUnit單元測(cè)試框架:初學(xué)者教程 Apr 18, 2024 pm 01:51 PM

JUnit是Java的單元測(cè)試框架,提供了簡(jiǎn)潔的工具來(lái)測(cè)試應(yīng)用程式元件。安裝依賴項(xiàng)後,可透過(guò)編寫一個(gè)包含@Test註解的單元測(cè)試類別來(lái)測(cè)試一個(gè)類,並使用assertEquals等斷言方法驗(yàn)證預(yù)期值和實(shí)際值。 JUnit提供了許多功能,例如準(zhǔn)備方法、失敗訊息和逾時(shí)機(jī)制。

JUnit單元測(cè)試框架在多執(zhí)行緒環(huán)境中的用法 JUnit單元測(cè)試框架在多執(zhí)行緒環(huán)境中的用法 Apr 18, 2024 pm 03:12 PM

在多執(zhí)行緒環(huán)境中使用JUnit時(shí),有兩種常見(jiàn)方法:?jiǎn)螆?zhí)行緒測(cè)試和多執(zhí)行緒測(cè)試。單執(zhí)行緒測(cè)試在主執(zhí)行緒上運(yùn)行,避免並發(fā)問(wèn)題,而多執(zhí)行緒測(cè)試在工作執(zhí)行緒上運(yùn)行,需要同步測(cè)試方法來(lái)確保共享資源不受干擾。常見(jiàn)使用案例包括測(cè)試多執(zhí)行緒安全方法,例如使用ConcurrentHashMap儲(chǔ)存鍵值對(duì),並發(fā)執(zhí)行緒對(duì)鍵值對(duì)進(jìn)行操作並驗(yàn)證其正確性,體現(xiàn)了多執(zhí)行緒環(huán)境中JUnit的應(yīng)用。

JUnit單元測(cè)試框架在Spring專案中的應(yīng)用 JUnit單元測(cè)試框架在Spring專案中的應(yīng)用 Apr 18, 2024 pm 04:54 PM

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

JUnit單元測(cè)試框架:解決常見(jiàn)記憶體洩漏問(wèn)題的指南 JUnit單元測(cè)試框架:解決常見(jiàn)記憶體洩漏問(wèn)題的指南 Apr 18, 2024 pm 04:51 PM

JUnit單元測(cè)試框架可以有效解決常見(jiàn)的記憶體洩漏問(wèn)題。常見(jiàn)的洩漏問(wèn)題包括持久靜態(tài)變數(shù)參考和未關(guān)閉資源。 JUnit提供了洩漏偵測(cè)器和分析記憶體佔(zhàn)用情況的工具來(lái)定位洩漏源。解決方法包括使用局部變數(shù)、弱引用、正確關(guān)閉資源和採(cǎi)用try-with-resources語(yǔ)句。透過(guò)遵循這些指南,開(kāi)發(fā)人員可以創(chuàng)建可靠且穩(wěn)定的JUnit測(cè)試環(huán)境。

JUnit單元測(cè)試框架在Java中的最佳實(shí)務(wù)是什麼? JUnit單元測(cè)試框架在Java中的最佳實(shí)務(wù)是什麼? Apr 18, 2024 pm 09:03 PM

遵循JUnit單元測(cè)試框架的最佳實(shí)踐可實(shí)現(xiàn)有效的程式碼驗(yàn)證:編寫?yīng)毩⒌臏y(cè)試將測(cè)試放在適當(dāng)?shù)奈恢檬褂脭嘌悦髦堑仳?yàn)證結(jié)果遵循命名約定(test開(kāi)頭)編寫負(fù)面測(cè)試使用Mocking和Stubbing隔離依賴項(xiàng)避免使用靜態(tài)變數(shù)刪除重複程式碼自動(dòng)化測(cè)試執(zhí)行

JUnit單元測(cè)試框架:在調(diào)試模式下執(zhí)行測(cè)試案例的技巧 JUnit單元測(cè)試框架:在調(diào)試模式下執(zhí)行測(cè)試案例的技巧 Apr 18, 2024 pm 03:54 PM

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

See all articles