Groovy generates getters and setters適用於所有類的字段。所以,當你這樣做:使用最終字段爲Groovy生成的getter調用Spock
class Foo {
final bar
}
new Foo().bar
你實際上是調用生成的方法Foo.getBar()
。
我有喜歡檢查這些生成的getter的調用一個斯波克規格:
def "some spock test"() {
given: def fooMock = Mock(Foo)
when: someFunction(fooMock)
then: 1 * fooMock.getBar()
}
someFunction()
確實fooMock.bar
,但我總是得到
Too few invocations for:
1 * fooMock.getBar() (0 invocations)
1 * fooMock.bar
不工作,要麼。在測試中,如何檢查是否從Foo
中讀取?它工作,如果我省略final
,但這是一個蹩腳的解決方案...
完美答案 - 謝謝 –