Junit單元測試 @Before和@After


1.測試分類

  •  黑盒測試:不需要寫代碼,看程序是否能夠輸出期望的值
  • 白盒測試:需要寫代碼。關注程序具體的執行流程

Junit就是白盒測試

2.Junit使用

步驟:

   (1)定義一個測試類(測試用例)

    * 建議:

      * 測試名:被測試的類名Test     CalulatorTest

      * 包名:xxx.xxx.xxx.test    cn.company.test

   (2)定義測試方法:可以獨立運行

    * 建議:

      * 方法名:test測試的方法名  testAdd()

      * 返回值:void

      * 參數列表:空參

   (3)給方法加@test

   (4)導入Junit依賴環境

判定結果:

  * 紅色:失敗

  * 綠色:成功

  * 一般我們會使用斷言操作來處理結果

    * Assert.assertEquals(期望的結果,運算的結果)

 

package demo01;

public class Calculator {
    /**
     * 加法
     *
     * @param a
     * @param b
     * @return
     */
    public int add(int a, int b) {
        return a + b;
    }

    /**
     * 減法
     *
     * @param a
     * @param b
     * @return
     */
    public int sub(int a, int b) {
        return a - b;
    }

}

  

package test;

import demo01.Calculator;

import org.junit.Test;

public class CalculatorTest {
    /**
     * 測試add方法
     */
    @Test
    public void testAdd() {
        System.out.println("我被執行了");
        // 1.創建計算器對象
        Calculator c = new Calculator();
        // 2.調用add
        int result = c.add(1, 2);
        System.out.println(result);
    }
}

  

運行結果綠色

 當被測試的類中有異常,會變成紅色

 一般情況下,我們不會在單元測試中進行輸出(System.out.println(result);),而是使用斷言

因為輸出的結果,我們有時候並不知道結果是否正確

我斷言這個結果是3,會把斷言的結果與真正的結果比,如果兩個是一樣的,成功了,就是綠色,失敗了就是紅色

 運行結果:

 一個測試類中可以測試多個方法,不用像之前的那樣只能有一個main方法,測試一個方法,就把其他方法都注釋掉了。

3.@Before和@After

@Before  修飾的方法,會在測試方法之前被自動執行,所有測試方法在執行之前都會執行該方法

@After  修飾的方法,會在測試方法執行之后自動被執行,在所有測試方法執行完之后,都會自動執行該方法

 無論測試方法是否會出現異常,這兩個修飾的方法總是會自動執行的。

import demo01.Calculator;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class CalculatorTest {

    /**
     * 初始化方法
     * 用於資源申請,所有測試方法在執行之前都會先執行該方法
     */
    @Before
    public void init() {
        System.out.println("init...");
    }

    /**
     * 釋放資源方法
     * 在所有測試方法執行完后,都會自動執行該方法
     */
    @After
    public void close() {
        System.out.println("close...");
    }


    /**
     * 測試add方法
     */
    @Test
    public void testAdd() {
        System.out.println("testAdd...");
        // 1.創建計算器對象
        Calculator c = new Calculator();
        // 2.調用add
        int result = c.add(1, 2);
        Assert.assertEquals(3, result);
    }

    @Test
    public void testSub() {
        Calculator calculator = new Calculator();
        int result = calculator.sub(1, 2);
        System.out.println("testSub...");
        Assert.assertEquals(-1, result);
    }
}

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM