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

單元測試Junit使用與詳解

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

一、什么是單元測試
在平時的開發(fā)當(dāng)中,一個項目往往包含了大量的方法,可能有成千上萬個。如何去保證這些方法產(chǎn)生的結(jié)果是我們想要的呢?當(dāng)然了,最容易想到的一個方式,就是我們通過System.out來輸出我們的結(jié)果,看看是不是滿足我們的需求,但是項目中這些成千上萬個方法,我們總不能在每一個方法中都去輸出一遍嘛。這也太枯燥了。這時候用我們的單元測試框架junit就可以很好地解決這個問題。Junit是一個單元測試框架。

二、使用
注意:用Junit進(jìn)行單元測試必須滿足以下條件:
1、每一個測試方法上使用@Test進(jìn)行修飾
2、每一個測試方法必須使用public void 進(jìn)行修飾
3、每一個測試方法不能攜帶參數(shù)
4、測試代碼和源代碼在兩個不同的項目路徑下
5、測試類的包應(yīng)該和被測試類保持一致
6、測試單元中的每個方法必須可以獨(dú)立測試

1.Junit的jar包導(dǎo)入
如果不是maven項目,直接網(wǎng)上下載junit的jar包,如果是maven項目,直接導(dǎo)入maven依賴,版本改成自己需要。但是要注意,4.10以上版本的junit要配合hamcrest-core的jar包使用。

2.Junit簡單使用

import org.junit.*;

public class Tests {
   @Test
    public void testAdd(){
       System.out.println("test1");
    }
}


左擊方法名,點(diǎn)擊運(yùn)行按鈕,選擇debug模式,運(yùn)行結(jié)果如圖

單元測試Junit使用與詳解
3.對方法進(jìn)行斷言測試
這里寫了三個方法,主要對以下方法用斷言進(jìn)行測試,代碼如下

public class Method {
    public int add(int a,int b){
        return a+b;
    }
    public int delete(int a,int b){
        return a-b;
    }
    public boolean isTrue(){
        return 2==1;
    }
}

- 1、assertEquals
斷言判斷是否相等,這個方法里面可以又很多參數(shù),一般根據(jù)我們的需要輸入相應(yīng)的參數(shù)

單元測試Junit使用與詳解?

在這里選擇assertEquals(Object expected,Object actual),expected指的是期望得到的值,actual指實際返回的結(jié)果,如果期望值和實際結(jié)果不相等,就會拋異常,即斷言失敗。我們對add方法進(jìn)行測試,代碼如下

public class Tests {
   @Test
    public void testAdd(){
        Assert.assertEquals(3,new Method().add(3,1));
       System.out.println("test1");
    }
    }

輸入值和期望值不一樣,這里拋出異常

單元測試Junit使用與詳解
- 2、assertTrue/assertFalse
該斷言用來驗證給定的布爾型值是否為真,假如結(jié)果為假,則驗證失敗。
方法: assertTrue ([String message],Boolean condition)
message是個可選的消息,假如提供,將會在發(fā)生錯誤時報告這個消息。
這里測試isTrue方法,測試代碼如下:

public class Tests {
   @Test
    public void testTrue(){
        Assert.assertTrue("不相等",new Method().isTrue());
       System.out.println("test1");
    }
    }

很明顯,測試代碼里面返回的是false,所以會拋出message消息

assertFalse方法同上,只是判斷的結(jié)果相反,如果boolean中返回為false則不拋異常,返回為true拋出message消息。

單元測試Junit使用與詳解

- 3、assertNull
這個方法很好理解,就不寫專用的方法來進(jìn)行演示。用于判斷函數(shù)返回是否為空
方法:assertNotNull([String message],Object object)
message即返回為空之后的打印的消息,object是判斷的方法
測試代碼如下:

public class Tests {
   @Test
    public void testTrue(){
        Assert.assertNull("不為空","abcde");
       System.out.println("test1");
    }
    }


測試結(jié)果:如果判斷的對象不為空,則會拋出message消息,為空則通過測試

單元測試Junit使用與詳解
- 4、assertSame
 該斷言用來驗證expected參數(shù)和actual參數(shù)所引用的是否是同一個對象,假如不是,則驗證失敗。相應(yīng)地,也存在驗證不是同一個對象的斷言。(和assertEquals區(qū)別在于,這個用于判斷實際結(jié)果是否與期望結(jié)果的引用內(nèi)存地址相同,類似于==,而assertEquals類似于equals方法)
 方法:assertNotSame ([String message], expected,actual)
 message也是斷言失敗后打印的消息,expected是期望值,actual是實際值
 測試代碼:

public class Tests {
   @Test
    public void testTrue(){
        Assert.assertSame("不相等",2,4-3);
       System.out.println("test1");
    }
    }


測試結(jié)果:2肯定是不等于1的,這個時候會打印錯誤信息。

單元測試Junit使用與詳解
4.運(yùn)行流程
如果我們要在每個測試之前打開數(shù)據(jù)庫,又關(guān)閉數(shù)據(jù)庫,這樣如果在每個方法里面寫流程會非常麻煩,這個時候就有專有的測試方法運(yùn)行前后進(jìn)行操作的方法。其中beforeClass和afterClass方法必須是靜態(tài)方法。
@BeforeClass (setUpBeforeClass方法):
注解靜態(tài)方法;在運(yùn)行測試類時最先運(yùn)行且只執(zhí)行一次。
@AfterClass (tearDownAfterClass方法):
注解靜態(tài)方法;在運(yùn)行測試類時最后個運(yùn)行且只執(zhí)行一次。
@Before(setUp方法)
在執(zhí)行每個@Test之前執(zhí)行,每個@Test執(zhí)行前都會執(zhí)行@Before。
@Test
要執(zhí)行的測試單元
@After(tearDown方法)
在執(zhí)行每個@Test之后執(zhí)行,每個@Test執(zhí)行結(jié)束后都會執(zhí)行@After

public class Tests {
   @Test
    public void testAdd(){
       System.out.println("test1");
    }
    @Test
    public void testDelete(){
        System.out.println("test2");
    }
    @BeforeClass
    public static void beforeClass(){
        System.out.println("beforeClass.....");
    }
    @After
    public void after(){
        System.out.println("after......");
   }
    @AfterClass
    public static void afterClass(){
       System.out.println("afterClass....");
   }
    @Before
    public void before(){
        System.out.println("before.....");
    }
    }

打印結(jié)果:

單元測試Junit使用與詳解

這里我們可以看到它的運(yùn)行流程是這樣的:

單元測試Junit使用與詳解


5.junit測試套件(批量測試)
有的時候我們可能不止要對一個類進(jìn)行測試,這個時候就要用到測試套件,兩個測試類如下
Tests:

public class Tests {
   @Test
    public void testAdd(){
       System.out.println("test1");
    }
    }

Tests1

import org.junit.Test;

public class Tests1 {
    @Test
    public void testDelete(){
        System.out.println("test2");
    }
}

套件類Combine:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)//用于更改測試運(yùn)行器
@Suite.SuiteClasses({Tests.class,Tests1.class})//將要測試的類作為數(shù)組傳入到@Suite.SuiteClasses({})中
public class Combine {
	/**
	注意,該類中不要寫任何代碼
	**/
}


直接點(diǎn)擊類名進(jìn)行Debug
運(yùn)行結(jié)果如圖:

單元測試Junit使用與詳解?

是不是特別方便呢,可以多個類一起進(jìn)行測試,學(xué)會以上這些可以使用junit對方法進(jìn)行測試,但是具體需要測試的業(yè)務(wù)和邏輯要根據(jù)實際情況來編寫。文章來源地址http://www.zghlxwxcb.cn/news/detail-433519.html

到了這里,關(guān)于單元測試Junit使用與詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(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ī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

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

相關(guān)文章

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

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

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

    2024年02月15日
    瀏覽(46)
  • Junit5單元測試框架詳解

    Junit5單元測試框架詳解

    前面我們學(xué)習(xí)了Selenium自動化測試框架,但是有的時候測試用例會很多,我們需要一個工具來管理這些測試用例,而Junit就是一個很好的管理工具,簡單點(diǎn)來說,Junit就是一個針對Java的單元測試框架; 目錄 一.?關(guān)于Junit5 二. Junit使用 2.1 添加Maven依賴 2.2 注解 2.3 斷言 2.4 套件

    2024年02月06日
    瀏覽(28)
  • JUnit5-單元測試操作詳解

    JUnit5-單元測試操作詳解

    JUnit 5是JUnit測試框架的下一個主要版本,用于編寫和運(yùn)行單元測試。 與以前版本的 JUnit 不同,JUnit 5 由來自三個不同子項目的多個不同模塊組成。 JUnit 5 =? JUnit 平臺 +? JUnit Jupiter ?+? JUnit Vintage JUnit 平臺 是在 JVM 上啟動測試框架的基礎(chǔ)。它還定義了 TestEngine 用于開發(fā)在平臺

    2024年04月10日
    瀏覽(36)
  • Junit5+Mockito單元測試詳解

    Junit5+Mockito單元測試詳解

    1.宏觀層面:AIR原則 A:Automatic(自動化) 全自動執(zhí)行,輸出結(jié)果無需人工檢查,而是通過斷言驗證。 I:Independent(獨(dú)立性) 分層測試,各層之間不相互依賴。 R:Repeatable(可重復(fù)) 可重復(fù)執(zhí)行,不受外部環(huán)境( 網(wǎng)絡(luò)、服務(wù)、中間件等)影響。 2.微觀層面:BCDE原則 B: Bord

    2024年01月17日
    瀏覽(33)
  • 詳解JUnit單元測試框架(打樁測試待更新)示例代碼有格式問題,待更新

    詳解JUnit單元測試框架(打樁測試待更新)示例代碼有格式問題,待更新

    單元測試負(fù)責(zé)對最小的軟件設(shè)計單元(模塊)進(jìn)行驗證,根據(jù)軟件設(shè)計文檔中對模塊功能的描述,對重要的程序分支進(jìn)行測試并發(fā)現(xiàn)錯誤。 對于單元測試框架來講,它主要完成以下幾件事。 提供用例組織與執(zhí)行: 測試用例只有幾條時,可以不考慮用例組織,但是用例達(dá)到成

    2024年02月05日
    瀏覽(31)
  • 使用JUnit單元測試

    使用JUnit單元測試

    前提: ? 測試題目: 根據(jù)輸入的年份和月份判斷月份的天數(shù)。若月份不在有效范圍之內(nèi),應(yīng)提示:“月份輸入不正確?!薄T路莶粸?月,根據(jù)輸入月份輸出對應(yīng)的月份天數(shù)。月份為2月,根據(jù)年份判斷如為普通閏年,輸出2月份正確天數(shù);如為世紀(jì)閏年,輸出2月份正確天數(shù);

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

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

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

    2024年02月02日
    瀏覽(20)
  • Junit4單元測試的使用

    Junit4單元測試的使用

    導(dǎo)入Junit4依賴 要使用單元測試,首先我們得在項目中導(dǎo)入Junit4的jar包。 普通導(dǎo)入方式 ,在項目目錄下創(chuàng)建一個lib文件夾,然后將Junit4的jar復(fù)制進(jìn)來,然后右鍵點(diǎn)擊Add as Library 將jar設(shè)為依賴。 在這里插入圖片描述 Maven項目導(dǎo)入方式 ,在maven的配置文件pom.xml直接添加依賴坐標(biāo)

    2024年02月13日
    瀏覽(20)
  • 使用Junit進(jìn)行單元測試的簡單例子

    使用Junit進(jìn)行單元測試的簡單例子

    首先新建一個工程,選擇合適的路徑和JDK版本,其它默認(rèn)就行。 把Main.java內(nèi)容改為如下。 ? ?后面就是對add方法增加單元測試 在project窗口中右擊項目,在菜單中選擇:New - Directory 在彈出的提示框中輸入目錄名:test 。 然后右擊 project窗口中 test 目錄,在彈出菜單中選擇:

    2024年02月09日
    瀏覽(90)
  • 【單元測試】如何使用 JUnit5 框架?

    【單元測試】如何使用 JUnit5 框架?

    ??Junit5是一個用于在Java平臺上進(jìn)行單元測試的框架。JUnit 5 框架主要由三部分組成:JUnit Platform、JUnit Jupiter 和 JUnit Vintage。 JUnit Platform:定義了測試引擎的 API,是 JVM 上用于啟動測試框架的基礎(chǔ)服務(wù),支持通過 IDE、構(gòu)建工具、命令行等方式運(yùn)行單元測試。 JUnit Jupiter:包含

    2024年04月10日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包