JUnit - 測試框架
阿新 • • 發佈:2018-12-29
什麼是 Junit 測試框架?
JUnit 是一個迴歸測試框架,被開發者用於實施對應用程式的單元測試,加快程式編制速度,同時提高編碼的質量。JUnit 測試框架能夠輕鬆完成以下任意兩種結合:
- Eclipse 整合開發環境
- Ant 打包工具
- Maven 專案構建管理
特性
JUnit 測試框架具有以下重要特性:
- 測試工具
- 測試套件
- 測試執行器
- 測試分類
測試工具
測試工具是一整套固定的工具用於基線測試。測試工具的目的是為了確保測試能夠在共享且固定的環境中執行,因此保證測試結果的可重複性。它包括:
- 在所有測試呼叫指令發起前的 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()); } }
測試執行器
測試執行器 用於執行測試案例。以下為假定測試分類成立的情況下的例子:
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 的重要分類。幾種重要的分類如下:
- 包含一套斷言方法的測試斷言
- 包含規定執行多重測試工具的測試用例
- 包含收集執行測試用例結果的方法的測試結果
from: http://wiki.jikexueyuan.com/project/junit/test-framework.html