溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用Junit進行單元測試

發(fā)布時間:2022-02-19 15:48:15 來源:億速云 閱讀:189 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“如何使用Junit進行單元測試”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用Junit進行單元測試”吧!

Junit引入

Junit并不是java自帶的包,在使用的時候要引入第三方j(luò)ar包。

也可以使用maven進行項目管理,使用maven進行Junit包的引入(下方代碼為某版本的Junit的依賴引用):

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

最后,有些IDE在創(chuàng)建項目的時候會自行導入Junit包(或者可以通過設(shè)置導入Junit包,比如eclipse),這些IDE在創(chuàng)建項目的時候會把src文件夾分成兩個文件夾,一個為main,一個為test,這樣就可以直接在test文件夾直接寫Junit測試代碼了。

如何寫單元測試代碼

單元測試代碼可以簡單的分成三步,分別為GivenWhen,Then。Given代表初始狀態(tài)或者前置條件(可以簡單的理解為數(shù)據(jù)輸入);When代表行為發(fā)生,也就是進行測試動作;Then則是斷言結(jié)果。

所以大部分情況下我們可以把單元測試的代碼分為三塊:

  1. 第一塊代碼負責測試前的數(shù)據(jù)處理,比如輸入數(shù)據(jù)等。

  2. 第二塊代碼負責調(diào)用相關(guān)的功能模塊進行測試。

  3. 第三塊代碼負責將測試的結(jié)果與我們期待的結(jié)果進行比對,從而得出測試結(jié)果(通過或者失?。?/p>

代碼實戰(zhàn)

以一個簡單的計算器類為例,以下是這個計算器類的方法:

public class Calculator {
    public static int add(int x ,int y){
        return x+y;
    }
    public static int substract(int x, int y){
        return x-y;
    }
    public static float divide(int x,int y){
        return x/y;
    }
}

我們設(shè)計了一些簡單的測試代碼(代碼解讀詳見注釋):

import org.junit.Assert;
import org.junit.Test;

public class CalculatorTest {

   @Test //使用test注解,注解下的方法為測試代碼
   public void testAdd() {
       //我們要測的是一個add函數(shù),他傳入兩個int參數(shù)
       int x=2,y=3;//輸入數(shù)據(jù)
       int res = Calculator.add(x,y);//將數(shù)據(jù)傳遞給被測函數(shù),然后將返回結(jié)果存在res中
       Assert.assertEquals(res ,5);//使用斷言判斷res的值是否等于期待的值(這里期待為5)
       //如果res的值等于期待的值,則測試通過,反之測試失敗
   }

   @Test
   public void testSubstract() {
       //這是另一個測試代碼,使用簡寫的方式,將第一二步合在一起
       int res =Calculator.substract(5,3);
       Assert.assertEquals(res ,3);
   }
}

到此,相信大家對“如何使用Junit進行單元測試”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI