要自定義JUnit測試規則,可以創建一個實現TestRule接口的類,并在其中重寫apply()方法來定義規則的行為。
下面是一個簡單的示例,演示如何自定義一個JUnit測試規則:
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
public class CustomTestRule implements TestRule {
@Override
public Statement apply(Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
// 在測試之前執行的邏輯
System.out.println("Custom rule before test");
try {
base.evaluate();
} finally {
// 在測試之后執行的邏輯
System.out.println("Custom rule after test");
}
}
};
}
}
然后,在測試類中使用 @Rule 注解將這個自定義規則應用到測試方法中:
import org.junit.Rule;
import org.junit.Test;
public class CustomTest {
@Rule
public CustomTestRule customRule = new CustomTestRule();
@Test
public void testExample() {
System.out.println("Executing test example");
// 測試邏輯
}
}
運行測試類時,CustomTestRule中定義的邏輯將會在測試方法執行之前和之后被執行。這樣就可以實現自定義的JUnit測試規則了。