我想编写使用where:
来验证是否调用了x
方法的参数化测试。我想通过x
作为参数。就像是
when:
someService.request(input)
then:
1 * (closure.call(otherService))
where
input | closure
1 | {OtherService service -> service.method1(2, 3)}
2 | {OtherService service -> service.method2(4, 5, 6)}
但我得到一个错误:
Too few invocations for:
1 * (closure.call(otherService)) (0 invocations)
Unmatched invocations (ordered by similarity):
1 * otherService.deleteUserMessage(2,3)
我想做什么是可能的?
最佳答案
您可以通过使用基于交互的测试来轻松实现您要实现的目标,而不必尝试使测试过程复杂化并使其难以理解:
when:
someService.request(1)
then:
1 * service.method1(2, 3)
when:
someService.request(2)
then:
1 * service.method1(4, 5, 6)
您是否期望比以上两个交互更多?