简介JUnit之Rule的简单用法。为分析JUnit相关源代码做点准备。
Rule是一个用于测试单元类如MyTest中定义一个域的标注,该域must be public, not static, and a subtype of org.junit.rules.MethodRule。
package org.junit;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface Rule {
}
Kent Beck曾经写过一篇文章<Interceptors in JUnit>,虽然最后叫Rule,但仍然起拦截器/Interceptor的作用——即在运行测试的前后添加一些有用的代码。
【注:JUnit4.9开始,MethodRule被deprecated,TestRule取代它。MethodRule接口定义的唯一方法:
Statement apply(Statement base, FrameworkMethod method, Object target);
TestRule的对应物:
Statement apply(Statement base, Description description);
】