小编Chr*_*phE的帖子

@ Before / @ BeforeEach继承行为更改JUnit4 / JUnit5

从JUnit4迁移到JUnit5时,我发现JUnit4和JUnit5的行为发生了变化,并想检查该变化是否是JUnit4或JUnit5中的错误,以及如何正确执行。

让我们假设以下结构:

一个基层

public class BaseTestClass {

    @Before
    public void setUp(){
        System.out.println("Base Test Class");
    }
}
Run Code Online (Sandbox Code Playgroud)

从该基类继承的另一个类

public class InheritsFromBase extends BaseTestClass {

    @Override
    public void setUp() {
        System.out.println("I inherit from base");

        super.setUp();
    }
}
Run Code Online (Sandbox Code Playgroud)

和一个实际的测试班

public class ActualTests extends InheritsFromBase {

    @Test
    public void myTest(){
        Assert.assertTrue(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我运行myTest()JUnit 4中,则setUp()两者的方法,BaseTestClassInheritsFromBase被调用。

将这段代码迁移到JUnit5之后,setUp()不再调用这些方法。我必须在上手动添加@BeforeEach注释InheritsFromBase

产生以下类别:

public class BaseTestClass {

    @BeforeEach
    public void setUp(){
        System.out.println("Base Test Class");
    }
} …
Run Code Online (Sandbox Code Playgroud)

java junit4 junit5

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

标签 统计

java ×1

junit4 ×1

junit5 ×1