Spock - 提取方法的交互

问题描述 投票:0回答:2

spock文档指出,您可以将

then
块的断言提取到其他方法,并在每个断言之前添加
assert
关键字。

我还想将交互提取到辅助方法。 我尝试用

interaction
闭包块包装交互,但这不起作用。

可能吗?如果是的话如何实现?

java groovy spock
2个回答
22
投票

事实证明你可以。您必须通过交互来包装辅助方法调用:

then:
    interaction {
         helperMethod()
    }

然后你可以将交互放入这样的辅助方法中:

def helperMethod() {
    1 * someObj.getInt() >> 2
}

我用其他方法做了(在交互中包装辅助方法体),这就是它不起作用的原因


0
投票

你可以简单地这样做

then:
verifyInteraction()

void verifyInteraction() {
    1 * someObj.getInt() >> 2
}

创建 verify 方法非常重要

void
,因为默认情况下 groovy 将方法中的最后一行代码视为 return 语句。 因此,如果您成功了
def
,它将返回
null
,并且您的验证将失败。

© www.soinside.com 2019 - 2024. All rights reserved.