最佳答案
我有一个抽象基类,我用它作为单元测试的基础(TestNG 5.10)。在这个类中,我为我的测试初始化整个环境,设置数据库映射,等等。这个抽象类有一个带有 @BeforeClass
注释的方法,该方法执行初始化。
接下来,我使用具有 @Test
方法和 @BeforeClass
方法的特定类来扩展该类。这些方法执行特定于类的环境初始化(例如,将一些记录放入数据库)。
如何执行 @BeforeClass
注释方法的特定顺序?我需要在执行扩展类之前先执行抽象基类中的代码。
例如:
abstract class A {
@BeforeClass
doInitialization() {...}
}
class B extends A {
@BeforeClass
doSpecificInitialization() {...}
@Test
doTests() {...}
}
预期订单:
A.doInitialization
B.doSpecificInitialization
B.doTests
实际订单:
B.doSpecificInitialization // <- crashes, as the base init is missing
(A.doInitialization // <---not executed
B.doTests) // <-/