【发布时间】:2013-12-20 10:55:32
【问题描述】:
Groovy generates getters and setters 用于所有班级的字段。所以当你这样做时:
class Foo {
final bar
}
new Foo().bar
你实际上是在调用生成的方法Foo.getBar()。
我有一个 Spock 规范,它喜欢检查这样一个生成的 getter 的调用:
def "some spock test"() {
given: def fooMock = Mock(Foo)
when: someFunction(fooMock)
then: 1 * fooMock.getBar()
}
someFunction() fooMock.bar 但我总是得到 p>
Too few invocations for:
1 * fooMock.getBar() (0 invocations)
1 * fooMock.bar 也不起作用。在测试中如何检查bar 是从Foo 读取的?如果我省略final,它会起作用,但这是一个糟糕的解决方案......
【问题讨论】:
标签: groovy getter-setter spock