MyRule1和MyRule2MyRule2 依赖于取决于 MyRule1MyRule1因此,“ before”方法应在MyRule2“ before”方法之前运行。在JUnit 4中,可以通过RuleChain通过这种方式实现:
static MyRule1 myRule1 = new MyRule1();
static MyRule2 myRule2 = new MyRule2(myRule1);
@Rule
TestRule ruleChain = RuleChain.outerRule(myRule1)
.around(myRule2);
Run Code Online (Sandbox Code Playgroud)
在JUnit 5中,我必须以这种方式实现它:
static MyRule1 myRule1 = new MyRule1();
@RegisterExtension
static MyRule2 myRule2 = new MyRule2(myRule1);
Run Code Online (Sandbox Code Playgroud)
与MyRule2:
class MyRule2 implements BeforeAllCallback {
private final MyRule1 myRule1;
public MyRule2(MyRule1 myRule1) {
this.myRule1 = myRule1;
}
@Override
public void beforeAll(ExtensionContext extensionContext) {
this.myRule1.beforeAll();
X x = …Run Code Online (Sandbox Code Playgroud)