spock文档指出,您可以将
then
块的断言提取到其他方法,并在每个断言之前添加assert
关键字。
我还想将交互提取到辅助方法。 我尝试用
interaction
闭包块包装交互,但这不起作用。
可能吗?如果是的话如何实现?
事实证明你可以。您必须通过交互来包装辅助方法调用:
then:
interaction {
helperMethod()
}
然后你可以将交互放入这样的辅助方法中:
def helperMethod() {
1 * someObj.getInt() >> 2
}
我用其他方法做了(在交互中包装辅助方法体),这就是它不起作用的原因
你可以简单地这样做
then:
verifyInteraction()
void verifyInteraction() {
1 * someObj.getInt() >> 2
}
创建 verify 方法非常重要
void
,因为默认情况下 groovy 将方法中的最后一行代码视为 return 语句。
因此,如果您成功了 def
,它将返回 null
,并且您的验证将失败。