Unit Test Framework – JUnit 3

JUnit 是一個 Java 語言的 Unit Test Framework,它由 Kent Beck 和 Erich Gamma 建立。
最近的 2 個大版本是 JUnit 3.8.2 和 JUnit 4.x,理應介紹 JUnit 4.x 的用法,但因為目前 JUnit 3.8.2 的使用還算大宗,且 JUnit 3.8.2 的版本也比較好入門,這篇就稍微介紹 JUnit 3.8.2 的大略使用。

使用 JUnit 需要有以下步驟:
1. Import JUnit Library
2. 寫一個 JUnit Test 的 Class
3. 執行 JUnit 測試

1. Import JUnit Library
(1) Right click the project → Build Path → Add Libraries
Import JUnit Library - 1

(2)Choose JUnit (Next) → JUnit 3 (Finish)
Import JUnit Library - 2
Import JUnit Library - 3

(3) 成功 Import JUnit 3
Import JUnit Library - 4

2. 寫一個 JUnit Test 的 Class
(1) 需 import junit.framework.TestCase
(2) 所有 Test Class 需要 extends TestCase
(3) 每個 TestCase 的命名的 prefix 是 “test”,postfix 是要測試的 function name
如:計算機裡有個 function 叫做 Add(),那麼 Add 的 UnitTest 就是 “testAdd()”
(4) setUp():裡面執行開始 TestCase 前的準備工作(可寫可不寫)
(5) tearDown():裡面執行完成 TestCase 後的還原工作(可寫可不寫)
(6) assertEquals:幫助檢驗執行結果與預期結果是否相等
(7) 在執行每一個 Test Case 前後,都會執行 setUp()、testDown()
(8) 執行 Test Case 的順序並非依據 Java 檔案內的順序,而是依照 Test Case 名稱排序,所以每個 Test 建議都要是獨立的,不應有順序上的相依關係喔!

若在檔案內 Test Case 的排序是:SetUp() → testY() → testZ() → testX()→ tearDown()

則實際執行順序會是:SetUp() → testX() → tearDown() → SetUp() → testY() → tearDown() → SetUp() → testZ() → tearDown()

import junit.framework.TestCase;

public class TestCalculator extends TestCase
{
	protected void setUp()
	{
		/* 開始 TestCase 前的準備工作:開啟計算機,將計算機歸零... */
	}

	protected void tearDown() {
		/* 完成 TestCase 後的清理工作:關閉計算機... */
	}

	public void testAdd()
	{
		Calculator calculator = new Calculator();
		assertEquals(0.0, calculator.add(0, 0));
	}

	public void testSubtraction()
	{
		Calculator calculator = new Calculator();
       	assertEquals(0.0, calculator.subtraction(0, 0));
	}
}
  1. 執行 JUnit 測試
    Right click test class → Run As → JUnit Test
    即可觀看結果
    Run As JUnit Test

結果:
JUnit Test Result

如此就能執行 Java-based 的 Unit Test 了。

參考文章:
(1) JUnit (Wiki)
(2) 開源框架:JUnit Gossip
(3) JUnit 3 的使用

廣告

3 thoughts on “Unit Test Framework – JUnit 3

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s