【发布时间】:2015-11-13 09:20:50
【问题描述】:
说类继承就像 C -> B -> A 其中 A 是最顶层的超类。
class A {
@BeforeClass
void setUp() {
//some stuff
}
}
class B extends A {
}
@Test
class C extends B {
//running this class DOES NOT invoke setUp() from A.
}
我在 A 类中有 @BeforeClass testng 注解。我只用 @Test 对 C 类注解。现在,我希望在运行类 C 时,它应该在超类 A 中执行 @BeforeClass 注释方法。但事实并非如此。
但是当我将 @BeforeClass 注释移动到 B 类时它会运行。
有什么想法吗?
目前,解决方法是在 B 类中重新注释。
class A {
@BeforeClass
void setUp() {
//some stuff
}
}
class B extends A {
@BeforeClass
void setUp() {
super.setUp();
//some stuff
}
}
@Test
class C extends B {
//running this class invokes setUp() from only B.
}
注意:如果开始时只有两个继承级别,则问题不存在。
【问题讨论】:
标签: java unit-testing testng