運行環境測試案例
隨著 Java 開源,出現了更多的 Java 運行環境,除了 SUN 的參考實現外,BEA、IBM 均有自己的 Java 運行環境,更有如 Apache Harmony 的開源運行環境(盡管現在 Apache Harmony 尚不能稱為 Java 運行環境)。運行環境測試案例,為運行環境開發者以及選擇運行環境,都能提供一定的幫助。比如說下面的例子就是測試 java.util.ArrayList 和 java.util.Vector 在兩個不同運行環境的表現。測試案例寫法和普通的測試案例完全一樣,我們只需告訴 p-unit 不同的運行環境的 Java 路徑以及正確的 classpath,然后調用 runVMs 函數即可:
清單 9. p-unit 運行環境測試案例
public static void main(String[] args) { PUnitSoloRunner runner = new PUnitSoloRunner(); runner.addPUnitEventListener(new OverviewReporter(new ImageRender())); runner.runVMs(ListTestClass.class, new VM[] { VMConfig.HARMONY, VMConfig.SUN });}public class VMConfig { private static String CLASSPATH = " -cp correct_classpath_including_all_jars_and_path"; private static String HARMONY_PATH = "harmony_path\\bin\\java" + CLASSPATH; private static String SUN_PATH = "sun_path\\bin\\java" + CLASSPATH; public static VM HARMONY = new VM(HARMONY_PATH, "HarmONY"); public static VM SUN = new VM(SUN_PATH, "SUN");}public class ListTestClass { private static final int LIST_COUNT = 100000; private static Object element = new Object(); private Random indexGenerator = new Random();; public void testInsertArrayList() { ArrayList arrayList = new ArrayList(LIST_COUNT); insertSequence(arrayList); insertRandom(arrayList); } public void testInsertVector() { Vector vector = new Vector(LIST_COUNT); insertSequence(vector); insertRandom(vector); } public void insertSequence(List list) { for (int i = 0; i < LIST_COUNT; ++i) { list.add(element); } } public void insertRandom(List list) { for (int i = 0; i < LIST_COUNT; ++i) { list.add(indexGenerator .nextInt(LIST_COUNT),element); } } }
文章來源于領測軟件測試網 http://www.kjueaiud.com/