У меня есть тест, который требует:
- проверка взаимодействия (метод был вызван и с правильными аргументами)
- макет должен возвращать какое-то доброкачественное возвращаемое значение, чтобы не вызывать никаких побочных эффектов.
Прилагаемый код делает это, но мне интересно, есть ли более читаемый способ сделать это. В частности, я думаю, что было бы хорошо отделить насмешливые биты (№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
}
}