我想编写使用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)


您是否期望比以上两个交互更多?

07-26 09:33