Спок вызывает setProperty ('x', 'test') вместо setX ('test') для объекта Mock - PullRequest
0 голосов
/ 06 апреля 2020

У нас есть классы Foo и Bar:

class Foo {
    String x
}
class Bar {
    void call(Foo foo, String x) {
        foo.x = x
    }
}

В модульном тесте мы делаем:

void 'test' {
    setup:
    mockFoo = Mock(Foo)
    when:
    new Bar().call(mockFoo, 'test')
    then:
    1 * mockFoo.setX('test')
}

Но в результате мы видим, что тест завершается неудачно с "слишком малым количеством вызовов" и показывает что вместо этого был вызов mockFoo.setProperty ('x', 'test'). Эта проблема возникает в среде CI. На локальной машине все ок. Изменение теста на setProperty('x', 'test') приводит к локальным сбоям. Может кто-нибудь объяснить, как справиться с такой проблемой?

1 Ответ

0 голосов
/ 07 апреля 2020

Я недавно исправил эту ошибку в Groovy 3. Groovy 2.4 по-прежнему будет иметь старое поведение использования setProperty.

Кроме того, indy vs default может иметь значение при выборе инструкций.

...