在本節中,我們將學習如何建立套件測試。測試套件是一些測試不同類用例,可以使用@RunWith和@Suite註解執行所有東西在一起。如果有很多測試類,想讓它們都執行在同一時間,而不是單一地執行每個測試,這是非常有用的。
當一個類被註解為@RunWith, JUnit 將呼叫被在其中註解,以便執行測試類,而不使用內建的 JUnit 執行方法。
基於前面的章節中的類,我們可以建立兩個測試類。一個類將測試公共方法 prepareMyBag()和其他測試類將測試方法 addPencils()。因此,我們最終將有以下兩個類:
PrepareMyBagTest.java
package com.yiibai.junit; import org.junit.Test; import static org.junit.Assert.*; public class PrepareMyBagTest { FirstDayAtSchool school = new FirstDayAtSchool(); String[] bag = { "Books", "Notebooks", "Pens" }; @Test public void testPrepareMyBag() { System.out.println("Inside testPrepareMyBag()"); assertArrayEquals(bag, school.prepareMyBag()); } }
AddPencilsTest.java
package com.yiibai.junit; import org.junit.Test; import static org.junit.Assert.*; public class AddPencilsTest { FirstDayAtSchool school = new FirstDayAtSchool(); String[] bag = { "Books", "Notebooks", "Pens", "Pencils" }; @Test public void testAddPencils() { System.out.println("Inside testAddPencils()"); assertArrayEquals(bag, school.addPencils()); } }
現在,我們將建立一個測試套件,以便執行上面的類在一起。用滑鼠右鍵單擊 test 原始檔夾,並建立一個新的名為SuiteTest.java 的Java類,使用下面的程式碼:
SuiteTest.java
package com.yiibai.junit; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ PrepareMyBagTest.class, AddPencilsTest.class }) public class SuitTest { }
使用@ Suite.SuiteClasses註解,你可以定義測試類,將被列入執行。
所以,如果用滑鼠右鍵單擊測試套件並選擇 Run As -> JUnit Test, 兩個測試類與已經在@ Suite.SuiteClasses註解定義的順序執行。