import org.junit.runner.RunWith;
import org.junit.runners.Suite;
……
/**
* 批量測試 工具包 中測試類
* @author Ai92
*/
@RunWith(Suite.class)
@Suite.SuiteClasses({TestWordDealUtil.class})
public class RunAllUtilTestsSuite {
}
上例代碼中,我們將前文提到的測試類 TestWordDealUtil 放入了測試套件 RunAllUtilTestsSuite 中,在 Eclipse 中運行測試套件,可以看到測試類 TestWordDealUtil 被調用執行了。測試套件中不僅可以包含基本的測試類,而且可以包含其它的測試套件,這樣可以很方便的分層管理不同模塊的單元測試代碼。但是,您一定要保證測試套件之間沒有循環包含關系,否則無盡的循環就會出現在您的面前……。
參數化測試
回顧一下我們在小節“JUnit 初體驗”中舉的實例。為了保證單元測試的嚴謹性,我們模擬了不同類型的字符串來測試方法的處理能力,為此我們編寫大量的單元測試方法?墒沁@些測試方法都是大同小異:代碼結構都是相同的,不同的僅僅是測試數據和期望值。有沒有更好的方法將測試方法中相同的代碼結構提取出來,提高代碼的重用度,減少復制粘貼代碼的煩惱?在以前的 JUnit 版本上,并沒有好的解決方法,而現在您可以使用 JUnit 提供的參數化測試方式應對這個問題。
參數化測試的編寫稍微有點麻煩(當然這是相對于 JUnit 中其它特性而言):
為準備使用參數化測試的測試類指定特殊的運行器 org.junit.runners.Parameterized。
為測試類聲明幾個變量,分別用于存放期望值和測試所用數據。
為測試類聲明一個使用注解 org.junit.runners.Parameterized.Parameters 修飾的,返回值為 java.util.Collection 的公共靜態方法,并在此方法中初始化所有需要測試的參數對。
為測試類聲明一個帶有參數的公共構造函數,并在其中為第二個環節中聲明的幾個變量賦值。
編寫測試方法,使用定義的變量作為參數進行測試。
我們按照這個標準,重新改造一番我們的單元測試代碼:
package com.ai92.cooljunit;
文章來源于領測軟件測試網 http://www.kjueaiud.com/