目前我的测试有一种奇怪的行为。 对于我的测试,我使用的是Groovy和JUnit 4. Groovy有自己的strang逻辑,所以不要担心我的代码:D
示例1:
@Log
class Test {
private static def filledFormFields = [
a: 1,
b: 2
]
@Before
void check() {
filledFormFields.each { k, v ->
log.info("$k -> $v")
}
}
@Test
void testA() {
System.exit(0)
}
}
log.info打印fillFormFields的所有信息(即使它是静态的,是的,在我的情况下它必须是静态的)。
示例2:
@Log
class Test extends Manager {
private static def filledFormFields = [
a: 1,
b: 2
]
@Test
void testA() {
System.exit(0)
}
}
@Log
abstract class Manager {
@Before
void check() {
filledFormFields.each { k, v ->
log.info("$k -> $v")
}
}
}
log.info什么都没打印,但为什么?
为什么我的filledFormFields是静态的? 目前我正在使用Groovy创建Selenium / Geb JUnit测试。每个测试都实例化filledFormFields变量new。在我的情况下,我不希望这样,因为它是静态的。它也是私有的,因为我有多个测试类,只使用其他同样的其他信息。这是我发现的唯一一种解决方案,它只将varibales保留在一个类中,而不是在每次测试中实例化。