相关疑难解决方法(0)

@BeforeClass和继承 - 执行顺序

我有一个抽象基类,我用它作为单元测试的基础(TestNG 5.10).在这个类中,我初始化我的测试的整个环境,设置数据库映射等.这个抽象类有一个带有@BeforeClass注释的方法来进行初始化.

接下来,我使用特定的类扩展该类,其中我有@Test方法和@BeforeClass方法.这些方法对类环境进行特定于类的初始化(例如,将一些记录放入数据库中).

我如何强制执行@BeforeClass注释方法的特定顺序?我需要抽象基类中的那些在扩展类之前执行.

例:

abstract class A {
    @BeforeClass
    doInitialization() {...}
}

class B extends A {
    @BeforeClass
    doSpecificInitialization() {...}

    @Test
    doTests() {...}
}
Run Code Online (Sandbox Code Playgroud)

预期订单:

A.doInitialization
B.doSpecificInitialization
B.doTests
Run Code Online (Sandbox Code Playgroud)

实际订单:

B.doSpecificInitialization // <- crashes, as the base init is missing
(A.doInitialization        // <---not executed
 B.doTests)                // <-/
Run Code Online (Sandbox Code Playgroud)

java testng unit-testing

88
推荐指数
4
解决办法
5万
查看次数

标签 统计

java ×1

testng ×1

unit-testing ×1