使用Spock进行模拟时,如何消除对参数数量的限制?

Jul*_*éon 5 java mocking spock

模拟方法时,是否可以接受任意数量的参数?

例如,如果我想模拟这两个方法:

foo(String s);
foo(String s, int i);
Run Code Online (Sandbox Code Playgroud)

现在,在我的测试中,我这样做:

myMockedClass.foo(_) >> x
myMockedClass.foo(_, _) >> x
Run Code Online (Sandbox Code Playgroud)

有没有办法同时模拟两者?就像是:

myMockedClass.foo(*) >> x
Run Code Online (Sandbox Code Playgroud)

(这不起作用)

Pet*_*ser 5

此功能是计划中的,但尚不存在。建议的语法是foo.bar(*_).

  • 已在最新快照中实现。`*_` 代表“任意数量(包括零)的附加参数”。它必须出现在参数列表的末尾(但不一定在开头)。 (4认同)