小编Bap*_*ail的帖子

JUnit 5中的@RuleChain等效于什么?

  • 我有2个“一流水平”的规则:MyRule1MyRule2
  • MyRule2 依赖于取决于 MyRule1
  • MyRule1因此,“ 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)

java junit junit5 junit5-extension-model

7
推荐指数
1
解决办法
400
查看次数

标签 统计

java ×1

junit ×1

junit5 ×1

junit5-extension-model ×1