У меня есть тест, который требует:
- проверки взаимодействия (метод был вызван и с правильными аргументами)
- mock должен вернуть какое-то мягкое возвращаемое значение, поэтомукак не вызывать побочных эффектов.
Прикрепленный код делает это, но мне интересно, есть ли более читаемый способ сделать это.В частности, я думаю, что было бы хорошо отделить биты насмешки (# 1) от битов заглушки (# 2).
Есть предложения?
Спасибо!
def "foo"() {
setup:
Payload payload
Collaborator mock = Mock()
underTest.collaborator = mock
when: "doing something"
underTest.doSomething()
then: "collaborator's func is called once"
1 * mock.func(*_) >> { args ->
payload = args[0] // 1. capture arg for inspection
SOME_RETURN_VAL // 2. return a canned response
}
and: "collaborator is passed correct args"
with(payload) {
//...do some verification over payload
}
}