鍍金池/ 教程/ Java/ JUnit - 測試框架
JUnit - 參數(shù)化測試
JUnit - 執(zhí)行過程
JUnit - 執(zhí)行測試
JUnit - 概述
JUnit - 測試框架
JUnit - 套件測試
Junit - 環(huán)境設置
JUnit - 忽略測試
JUnit - 使用斷言
JUnit - Eclipse 插件
JUnit - 時間測試
JUnit - 編寫測試
JUnit - 框架擴展
JUnit - API
JUnit - 異常測試
JUnit - ANT 插件
JUnit - 基本用法

JUnit - 測試框架

什么是 Junit 測試框架?

JUnit 是一個回歸測試框架,被開發(fā)者用于實施對應用程序的單元測試,加快程序編制速度,同時提高編碼的質(zhì)量。JUnit 測試框架能夠輕松完成以下任意兩種結合:

  • Eclipse 集成開發(fā)環(huán)境
  • Ant 打包工具
  • Maven 項目構建管理

特性

JUnit 測試框架具有以下重要特性:

  • 測試工具
  • 測試套件
  • 測試運行器
  • 測試分類

測試工具

測試工具是一整套固定的工具用于基線測試。測試工具的目的是為了確保測試能夠在共享且固定的環(huán)境中運行,因此保證測試結果的可重復性。它包括:

  • 在所有測試調(diào)用指令發(fā)起前的 setUp() 方法。
  • 在測試方法運行后的 tearDown() 方法。

讓我們來看一個例子:

import junit.framework.*;

public class JavaTest extends TestCase {
   protected int value1, value2;

   // assigning the values
   protected void setUp(){
      value1=3;
      value2=3;
   }

   // test method to add two values
   public void testAdd(){
      double result= value1 + value2;
      assertTrue(result == 6);
   }
}

測試套件

測試套件意味捆綁幾個測試案例并且同時運行。在 JUnit 中,@RunWith 和 @Suite 都被用作運行測試套件。以下為使用 TestJunit1 和 TestJunit2 的測試分類:

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

//JUnit Suite Test
@RunWith(Suite.class)
@Suite.SuiteClasses({ 
   TestJunit1.class ,TestJunit2.class
})
public class JunitTestSuite {
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

public class TestJunit1 {

   String message = "Robert";   
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   public void testPrintMessage() { 
      System.out.println("Inside testPrintMessage()");    
      assertEquals(message, messageUtil.printMessage());     
   }
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

public class TestJunit2 {

   String message = "Robert";   
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Robert";
      assertEquals(message,messageUtil.salutationMessage());
   }
}

測試運行器

測試運行器 用于執(zhí)行測試案例。以下為假定測試分類成立的情況下的例子:

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(TestJunit.class);
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
      System.out.println(result.wasSuccessful());
   }
}

JUnit 測試分類

測試分類是在編寫和測試 JUnit 的重要分類。幾種重要的分類如下:

  • 包含一套斷言方法的測試斷言
  • 包含規(guī)定運行多重測試工具的測試用例
  • 包含收集執(zhí)行測試用例結果的方法的測試結果