国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【軟件測試】單元測試工具---Junit詳解

這篇具有很好參考價(jià)值的文章主要介紹了【軟件測試】單元測試工具---Junit詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.junit

1.1 junit是什么

JUnit是一個Java語言的單元測試框架。

雖然我們已經(jīng)學(xué)習(xí)了selenium測試框架,但是有的時候測試用例很多,我們需要一個測試工具來管理這些測試用例,Junit就是一個很好的管理工具,簡單來說Junit是一個針對Java單元測試的框架。Junit由Junit Platform _ Junit Jupiter + junit Vintage3部分組成。

1.2 Junit和Selenium的關(guān)系

Junit和Selenium是完全不同的兩個東西?。。?/strong>

在一個燈串上,如果說selenium編寫的測試用例是一個小燈泡,那么junit就是把它們串起來的線。junit是用來管理selenium的測試用例的。

【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome

2.junit技術(shù)

2.0 前置工作

在pom.xml文件中添加依賴

引入selenium:

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.7.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>

參數(shù)化:

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.9.2</version>
        </dependency>       

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.9.2</version>
        </dependency>

測試套件:

        <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite -->
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-suite</artifactId>
            <version>1.9.1</version>
        </dependency>
      
        <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.9.1</version>
            <scope>test</scope>
        </dependency>

2.1 junit常用注解

@Test

@Test表示當(dāng)前的方法是一個測試用例

使用:

@Test
void + 方法名(){}

舉例:

    //表示當(dāng)前的方法是一個測試用例
    @Test
    void Test01(){
        // 創(chuàng)建了一個options對象,用來給請求設(shè)置一些參數(shù)
        ChromeOptions options = new ChromeOptions();
        // 允許所有的請求
        options.addArguments("--remote-allow-origins=*");
        //設(shè)置驅(qū)動路徑
        System.setProperty("webdriver.chrome.driver","C:\\Program Files\\Java\\jdk1.8.0_192\\bin\\chromedriver.exe");
        // 創(chuàng)建了一個驅(qū)動
        WebDriver webDriver = new ChromeDriver(options);
        //打開百度
        webDriver.get("https://www.baidu.com/");
    }

@BeforeAll 和 @AfterAll

這兩個注解在整個測試的時候會執(zhí)行一次。

@BeforeAll表示在當(dāng)前類所有測試用例執(zhí)行之前運(yùn)行
@AfterAll表示在當(dāng)前類所有測試用例執(zhí)行之后運(yùn)行
并且這兩個方法都有static修飾,都只執(zhí)行一次

使用:

@BeforeAll
static void 方法名(){}

舉例:

	//當(dāng)前類里面所有的測試用例執(zhí)行之前執(zhí)行這個方法
    @BeforeAll
    static void SetUp(){
        System.out.println("開始執(zhí)行@BeforeAll修飾的方法");
    }

使用:

@AfterAll
static void 方法名(){}

舉例:

	//當(dāng)前類里面所有的測試用例執(zhí)行之后執(zhí)行這個方法
    @AfterAll
    static void TearDown(){
        System.out.println("開始執(zhí)行@AfterAll對應(yīng)的方法");
    }

運(yùn)行結(jié)果:
【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome

@BeforeEach 和 @AfterEach

這兩個注解會在每一個測試用例執(zhí)行的時候都執(zhí)行一次。

  • @BeforeEach表示在每個測試方法執(zhí)行前運(yùn)行
  • @AfterEach表示在每個測試方法執(zhí)行后運(yùn)行

舉例:

    @BeforeEach
    void BeforeTest(){
        System.out.println("這是一個@BeforeEach注解");
    }
    @AfterEach
    void AfterTest(){
        System.out.println("這是一個@AfterEach注解");
    }

結(jié)果:
【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome

@Disabled

作用:忽略當(dāng)前的測試用例

舉例:

    //忽略當(dāng)前的測試用例
    @Disabled
    //表示當(dāng)前的方法是一個測試用例
    @Test
    void Test01(){
        // 創(chuàng)建了一個options對象,用來給請求設(shè)置一些參數(shù)
        ChromeOptions options = new ChromeOptions();
        // 允許所有的請求
        options.addArguments("--remote-allow-origins=*");
        //設(shè)置驅(qū)動路徑
        System.setProperty("webdriver.chrome.driver","C:\\Program Files\\Java\\jdk1.8.0_192\\bin\\chromedriver.exe");
        // 創(chuàng)建了一個驅(qū)動
        WebDriver webDriver = new ChromeDriver(options);
        //打開百度
        webDriver.get("https://www.baidu.com/");
    }

結(jié)果:并沒有執(zhí)行這個測試用例

【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome

2.2 junit測試用例執(zhí)行順序

有人覺得junit的測試順序是從上到下的,是這樣嗎?

先來看一個示例:

    @Test
    void Test06(){
        System.out.println("這是測試用例5");
    }

    @Test
    void Test05(){
        System.out.println("這是測試用例4");
    }


    @Test
    void Test04(){
        System.out.println("這是測試用例3");
    }

    @Test
    void Test02(){
        System.out.println("這是測試用例1");
    }

    @Test
    void Test03(){
        System.out.println("這是測試用例2");
    }

結(jié)果:

【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome

以上結(jié)果表明了它不是按照從上到下執(zhí)行的測試用例。

指定順序執(zhí)行

使用@TestMethodOrder(MethodOrderer.OrderAnnotation.class)+ @Order(數(shù)字)注解順序執(zhí)行測試用例。

舉例:

//按照指定順序執(zhí)行測試用例
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class JunitTest {
    @Order(1)
    @Test
    void Test06(){
        System.out.println("這是測試用例5");
    }
    @Order(2)
    @Test
    void Test05(){
        System.out.println("這是測試用例4");
    }
    @Order(3)
    @Test
    void Test04(){
        System.out.println("這是測試用例3");
    }
    @Order(4)
    @Test
    void Test02(){
        System.out.println("這是測試用例1");
    }
    @Order(5)
    @Test
    void Test03(){
        System.out.println("這是測試用例2");
    }
}

結(jié)果:
【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome
是按照order里面的順序執(zhí)行的。

隨機(jī)執(zhí)行

使用@TestMethodOrder(MethodOrderer.Random.class)隨機(jī)執(zhí)行測試用例。

舉例:

//按照隨機(jī)順序執(zhí)行測試用例
@TestMethodOrder(MethodOrderer.Random.class)
public class JunitTest {
    @Order(1)
    @Test
    void Test06(){
        System.out.println("這是測試用例5");
    }
    @Order(2)
    @Test
    void Test05(){
        System.out.println("這是測試用例4");
    }
    @Order(3)
    @Test
    void Test04(){
        System.out.println("這是測試用例3");
    }
    @Order(4)
    @Test
    void Test02(){
        System.out.println("這是測試用例1");
    }
    @Order(5)
    @Test
    void Test03(){
        System.out.println("這是測試用例2");
    }
}

2.3 參數(shù)化測試

測試方法一般需要傳參數(shù)。

單參數(shù)

使用 @ParameterizedTest + @ValueSource() 配合傳遞單參數(shù)

@ParameterizedTest : 注冊參數(shù)

?。?!注意:這兩個注解不能和@Test一起使用,并且只能傳一種類型的參數(shù)

示例:

    @ParameterizedTest  //注冊
    @ValueSource(strings = {"1","2","3"})
    void Test07(String str){
        System.out.println(str);
    }

結(jié)果:
【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome

多參數(shù)

上面只可以傳入一種類型的參數(shù),所以如果我們需要傳入多種類型的參數(shù),就可以使用csv 。

CSV

①直接傳參數(shù):使用@ParameterizedTest + @CsvSource()配合

舉例:

    @ParameterizedTest
    @CsvSource({"1,2","3,4"})
    void Test08(String str,int num){
        System.out.println(str+" "+num);
    }

結(jié)果:
【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome

②傳遞文件:使用@ParameterizedTest+ @CsvFileSource(resources = "文件名.csv")配合

!?。∽⒁猓何募仨毷?csv類型

示例:

    @ParameterizedTest
    @CsvFileSource(resources = "test01.csv")
    void Test09(int id,String name){
        System.out.println("id="+id+",name="+name);
    }

test01.csv文件內(nèi)容:

1,溫溫
2,蘇蘇
3,憐憐

結(jié)果:
【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome

方法傳參

使用@ParameterizedTest + @MethodSource("方法名") 傳入一個方法

示例:

    @ParameterizedTest  //注冊參數(shù)
    @MethodSource("Generator")  //注冊的參數(shù)是什么
    void Test10(String num,String name){
        System.out.println(num+" "+name);
    }

Generator方法代碼:

	public static Stream<Arguments> Generator() {
        return Stream.of(Arguments.arguments("1,溫溫","2,蘇蘇"));
    }

結(jié)果:
【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome

2.4 斷言

在軟件測試中,斷言(Assertion)是一種用于檢查程序或系統(tǒng)在執(zhí)行某些操作或運(yùn)行某些代碼后是否符合預(yù)期行為的技術(shù)手段。在測試中,斷言通常用于驗(yàn)證代碼的正確性,確保代碼在滿足特定條件時會產(chǎn)生預(yù)期的結(jié)果。

示例:

    @ParameterizedTest
    @ValueSource(ints = {10})
    void Test11(int num){
        //斷言相等
        Assertions.assertEquals(num,10);
        //斷言不相等
        Assertions.assertNotEquals(num,11);
    }
    @ParameterizedTest
    @ValueSource(strings = {"1"})
    void Test11(int num){
        //斷言為空
        Assertions.assertNull(num);
        //斷言不為空
        Assertions.assertNotNull(num);
    }

2.5 測試套件

測試套件(test suite)有時也稱為驗(yàn)證套件(validation suite),是許多測試用例的集合,測試用例可用來測試一程式是否正確工作,測試套件包括許多測試用例,一般也會有針對測試用例及其測試目的的詳細(xì)說明,在進(jìn)行測試時的系統(tǒng)組態(tài)資訊以及測試前需進(jìn)行的步驟。

通過測試套件,將服務(wù)于同一個測試目的或同一運(yùn)行環(huán)境下的一系列測試用例有機(jī)的組合起來。測試套件是按照測試計(jì)劃所定義的各個階段的測試目標(biāo)決定的,即先有測試計(jì)劃,后面才有測試套件。

例如:此時有三個類的測試用例都需要測試。
【軟件測試】單元測試工具---Junit詳解,軟件測試,單元測試,junit,selenium,java,chrome

通過測試套件全部測試:

方法①:在括號中寫入測試類

@Suite
@SelectClasses({JunitTest.class, JunitTest02.class})
public class RunSuite {
}

方法②:根據(jù)指定的包來運(yùn)行多個測試用例文章來源地址http://www.zghlxwxcb.cn/news/detail-608405.html

@Suite
@SelectPackages({"org.example.junit01","org.example.junit"})
public class RunSuit {
}

到了這里,關(guān)于【軟件測試】單元測試工具---Junit詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 軟件測試(功能、工具、接口、性能、自動化、測開)詳解

    軟件測試(功能、工具、接口、性能、自動化、測開)詳解

    一、軟件測試功能測試 測試用例編寫是軟件測試的基本技能;也有很多人認(rèn)為測試用例是軟件測試的核心;軟件測試中最重要的是設(shè)計(jì)和生成有效的測試用例;測試用例是測試工作的指導(dǎo),是軟件測試的必須遵守的準(zhǔn)則。 黑盒測試常見測試用例編寫方法 1、等價(jià)類 選取少數(shù)

    2024年02月07日
    瀏覽(29)
  • 軟件測試實(shí)驗(yàn):Junit單元測試

    軟件測試實(shí)驗(yàn):Junit單元測試

    目錄 前言 實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)要求 實(shí)驗(yàn)過程 題目一 題目一測試結(jié)果 題目二 題目二實(shí)驗(yàn)結(jié)果 總結(jié) 軟件測試是軟件開發(fā)過程中不可缺少的一個環(huán)節(jié),它可以保證軟件的質(zhì)量和功能,發(fā)現(xiàn)并修復(fù)軟件的缺陷和錯誤。軟件測試分為多種類型,其中一種是單元測試,即對軟件

    2024年02月02日
    瀏覽(33)
  • 軟件測試--應(yīng)用JUnit進(jìn)行單元測試

    軟件測試--應(yīng)用JUnit進(jìn)行單元測試

    JUnit是一個開源的Java編程語言的單元測試框架,最初由 Erich Gamma 和 Kent Beck 編寫。Junit測試是一種白盒測試工具。JUnit是一套框架,繼承TestCase類,就可以用Junit進(jìn)行自動測試了。具有JUnit經(jīng)驗(yàn)對于應(yīng)用“測試驅(qū)動開發(fā)(TDD)”的程序開發(fā)模型是非常重要的。 JUnit本質(zhì)上是一套框

    2023年04月12日
    瀏覽(22)
  • 單元測試及其工具Junit

    單元測試及其工具Junit

    單元測試是開發(fā)者編寫的一小段代碼,用于檢驗(yàn)被測代碼的一個很小的、很明確的功能是否正確,通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數(shù)的行為。 單元測試是軟件測試的一種類型,測試對象是最基礎(chǔ)的代碼單元(函數(shù)、類、模塊),屬

    2024年02月10日
    瀏覽(19)
  • 單元測試工具——JUnit的使用

    單元測試工具——JUnit的使用

    ?? 前言 ?? 本篇文章主要介紹單元測試工具JUnit的使用。 ?? 歡迎點(diǎn)贊 ?? 收藏 ? 留言評論 ?? 私信必回喲 ?? ?? 博主將持續(xù)更新學(xué)習(xí)記錄收獲,友友們有任何問題可以在評論區(qū)留言 ?? 博客中涉及源碼及博主日常練習(xí)代碼均已上傳GitHub JUnit提供了非常強(qiáng)大的注解功能

    2024年02月02日
    瀏覽(19)
  • 軟件測試技術(shù)實(shí)驗(yàn)一 JUnit 單元測試的環(huán)境搭建

    軟件測試技術(shù)實(shí)驗(yàn)一 JUnit 單元測試的環(huán)境搭建

    1、確安裝并配置 IntelliJ IDEA開發(fā)環(huán)境 2、安裝插件Junit4.x,進(jìn)行測試環(huán)境搭建 3、根據(jù)給定的源代碼,編寫測試代碼,并運(yùn)行成功。 1、調(diào)試指導(dǎo)書給定的目標(biāo)源代碼,除掉明顯的語法錯誤,記錄正確無誤的被測程序代碼。被測程序?: (1)?Account.Java (2)Tc_Account.java (3)由插

    2024年04月28日
    瀏覽(25)
  • 軟件質(zhì)量保證與測試技術(shù)實(shí)驗(yàn)報(bào)告(四)——JUnit單元測試

    軟件質(zhì)量保證與測試技術(shù)實(shí)驗(yàn)報(bào)告(四)——JUnit單元測試

    1.實(shí)驗(yàn)名稱——JUnit單元測試 2.實(shí)驗(yàn)?zāi)康?(1)利用Junit進(jìn)行單元測試,理解單元測試的任務(wù)、同時理解這類測試工具的實(shí)現(xiàn)原理; (2)理解斷言的基本概念和斷言測試方法; 3.實(shí)驗(yàn)內(nèi)容 題目1:完成課件中Score_List的單元測試。 題目2:這是一個簡單的計(jì)算器類——Computer,能

    2023年04月23日
    瀏覽(24)
  • 軟件測試人員必備的60個測試工具清單!_軟件測試配置清單

    軟件測試人員必備的60個測試工具清單!_軟件測試配置清單

    7、Gatling 前兩種是比較常用的 4.C/S自動化工具 1,qtp (錄制回放和腳本編輯),用到的是vb語言 2,winrunner IBM產(chǎn)品類似qtp 3,autoit 在窗口定位上做到很不錯 5.白盒測試工具 1,jtest java語言的單元測試框架 2,JUnit 驗(yàn)證java的工具 3,cppunit 跨平臺的c++單元測試框架 4,gtest 跨平臺的

    2024年04月28日
    瀏覽(27)
  • 【軟件測試】接口測試工具APIpost

    【軟件測試】接口測試工具APIpost

    說實(shí)話,了解APIpost是因?yàn)椋业乃薪涌谙嚓P(guān)的文章下,都有該APIpost水軍的評論,無非就是APIpost是中文版的postman,有多么多么好用,雖然咱也還不是什么啥網(wǎng)紅,但是不知會一聲就亂在評論區(qū)打廣告,實(shí)在氣憤,一律刪帖。 但是,看的多了,也就有了裝一下看看的沖動了

    2024年02月13日
    瀏覽(30)
  • 什么是軟件壓力測試?軟件壓力測試工具和流程有哪些?

    什么是軟件壓力測試?軟件壓力測試工具和流程有哪些?

    軟件壓力測試 一、含義: 軟件壓力測試是一種測試應(yīng)用程序性能的方法,通過模擬大量用戶并發(fā)訪問,測試應(yīng)用程序在壓力情況下的表現(xiàn)和響應(yīng)能力。軟件壓力測試的目的是發(fā)現(xiàn)系統(tǒng)潛在的問題,如內(nèi)存泄漏、線程鎖、資源泄漏等,以及在高峰期或高負(fù)載情況下系統(tǒng)的響應(yīng)

    2024年02月11日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包