ดูที่Parameterized Testsใน JUnit 4
อันที่จริงฉันทำไม่กี่วันที่ผ่านมา ฉันจะพยายามอธิบาย ...
ขั้นแรกให้สร้างคลาสทดสอบของคุณตามปกติในขณะที่คุณทดสอบด้วยไฟล์อินพุตเดียว ตกแต่งชั้นเรียนของคุณด้วย:
@RunWith(Parameterized.class)
สร้างตัวสร้างหนึ่งตัวที่รับอินพุตที่จะเปลี่ยนแปลงในทุก ๆ การเรียกทดสอบ (ในกรณีนี้อาจเป็นไฟล์เอง)
จากนั้นสร้างเมธอดแบบคงที่ซึ่งจะส่งคืนCollection
อาร์เรย์ แต่ละอาร์เรย์ในคอลเล็กชันจะมีอาร์กิวเมนต์อินพุตสำหรับตัวสร้างคลาสของคุณเช่นไฟล์ ตกแต่งวิธีนี้ด้วย:
@Parameters
นี่คือคลาสตัวอย่าง
@RunWith(Parameterized.class)
public class ParameterizedTest {
private File file;
public ParameterizedTest(File file) {
this.file = file;
}
@Test
public void test1() throws Exception { }
@Test
public void test2() throws Exception { }
@Parameters
public static Collection<Object[]> data() {
Object[] fileArg1 = new Object[] { new File("path1") };
Object[] fileArg2 = new Object[] { new File("path2") };
Collection<Object[]> data = new ArrayList<Object[]>();
data.add(fileArg1);
data.add(fileArg2);
return data;
}
}
ตรวจสอบตัวอย่างนี้ด้วย