为什么在使用 Spock 的 Geb 测试中使用继承时,@Stepwise 不能跨 class 边界工作?
Why doesn't @Stepwise work across class boundaries when using inheritance in a Geb test using Spock?
虽然这可能不是最好的方法,但使用继承来组成一套 Geb 测试(使用 Spock)是相当普遍的。
使用 @Stepwise
对完成这项工作至关重要,但它似乎无法跨越 class 边界,如图所示:
我有一个 hack 解决方案来解决这个问题,但我真的很想知道这是预期的行为还是 Geb 或 Spock 应该调查的错误。
逐步注释仅适用于单个规范。它从未打算跨越 类 或跨越层次结构(Spock 邮件列表中的一个流行请求)。
官方 Javadoc 中是这样说的(重点是我的):
Indicates that a spec's feature methods should be run sequentially in
their declared order (even in the presence of a parallel spec runner),
always starting from the first method. If a method fails, the
remaining methods will be skipped. Feature methods declared in super-
and subspecs are not affected
http://spockframework.github.io/spock/javadoc/1.0/spock/lang/Stepwise.html
回答您最初的问题:这是预期的行为
虽然这可能不是最好的方法,但使用继承来组成一套 Geb 测试(使用 Spock)是相当普遍的。
使用 @Stepwise
对完成这项工作至关重要,但它似乎无法跨越 class 边界,如图所示:
我有一个 hack 解决方案来解决这个问题,但我真的很想知道这是预期的行为还是 Geb 或 Spock 应该调查的错误。
逐步注释仅适用于单个规范。它从未打算跨越 类 或跨越层次结构(Spock 邮件列表中的一个流行请求)。
官方 Javadoc 中是这样说的(重点是我的):
Indicates that a spec's feature methods should be run sequentially in their declared order (even in the presence of a parallel spec runner), always starting from the first method. If a method fails, the remaining methods will be skipped. Feature methods declared in super- and subspecs are not affected
http://spockframework.github.io/spock/javadoc/1.0/spock/lang/Stepwise.html
回答您最初的问题:这是预期的行为