Groovy generates getters and setters für alle Felder Ihrer Klasse. Also, wenn Sie dies tun:Spock Aufruf für Groovy generierte Getter mit einem Endfeld
class Foo {
final bar
}
new Foo().bar
Sie tatsächlich die erzeugte Methode Foo.getBar()
aufrufen.
Ich habe eine Spock-Spezifikation, die Anrufungen eines solchen erzeugt Getter überprüfen mag:
def "some spock test"() {
given: def fooMock = Mock(Foo)
when: someFunction(fooMock)
then: 1 * fooMock.getBar()
}
someFunction()
tut fooMock.bar
aber ich bekomme immer
Too few invocations for:
1 * fooMock.getBar() (0 invocations)
1 * fooMock.bar
funktioniert auch nicht. Wie kann ich überprüfen, ob bar
im Test von Foo
gelesen wird? Es funktioniert, wenn ich final
weglasse, aber das ist eine beschissene Lösung ...
perfekte Antwort - danke –