У меня проблема с методами насмешки с использованием Спока. Ниже приведен код, который я использую. Без каких-либо изменений все работает - фиктивная реализация работает правильно и возвращает «фиктивную» строку. Однако, если я раскомментирую строку с проверкой вызова (3 * notifier.test ()), моя фиктивная реализация для метода notify не будет вызвана и тесты завершатся неудачно, потому что notifier mock возвращает ноль. Почему это так работает?
class Aaaaa extends Specification {
class Notifier {
def test() {
println("Called in impl...")
return "impl"
}
}
def "Should verify notify was called"() {
given:
Notifier notifier = Mock(Notifier)
notifier.test() >> {
println("Called in mock...")
return "mock"
}
when:
notifier.test()
notifier.test()
def result = notifier.test()
then:
// 3 * notifier.test()
result == "mock"
}
}