【发布时间】:2018-12-21 05:01:34
【问题描述】:
我有一个测试要求:
- 验证交互(已调用方法,并使用正确的参数)
- 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
}
}
【问题讨论】: