Я полагаю, что в настоящее время в Споке это невозможно изящно, как вы, вероятно, ожидали.Я только придумал что-то вроде следующего:
def args = [arg1, arg2]
2 * service.processInput({ it == args.removeAt(0) }) >>> [out1, out2]
Не уверен, что это соответствует вашим ожиданиям.Ниже приведена полная спецификация для тестирования этого подхода
class SOSpec extends Specification {
def "mock a method different arguments and different return values"() {
when:
def arg1 = "F"
def arg2 = "B"
def out1 = "Foo"
def out2 = "Bar"
def service = Mock(SomeService) {
def args = [arg1, arg2]
2 * processInput({ it == args.removeAt(0) }) >>> [out1, out2]
}
then:
service.processInput(arg1) == out1
service.processInput(arg2) == out2
}
}