【发布时间】:2018-09-28 11:27:38
【问题描述】:
我想用单元测试覆盖一段代码
public List<Product> fetchProducts() {
...
String userId = anotherObj.getId()
return caller.call(client -> client.getProducts(userId));
}
注意:我无法更改该代码
现在,这是使用通配符工作的单元测试(省略了所有不相关的内容):
def anotherObj = Mock( ... )
def caller = Mock( ... )
...
when:
subject.fetchProducts()
then:
1 * anotherObj.getId() >> USER_ID
and:
1 * caller.call(_) >> mockedApiResponse
问题
我想检查函数 call 是否实际上是使用接收参数的函数调用并使用正确的参数调用该参数
伪代码
then:
1 * anotherObj.getId() >> USER_ID
and:
1 * caller.call( { it(obj -> obj.getProducts(USER_ID)) } ) >> mockedApiResponse
【问题讨论】:
标签: java groovy lambda mocking spock