Jmockit:无法将returns()用于集合和多个调用?

Jmockit:无法将returns()用于集合和多个调用?,jmockit,Jmockit,我要模拟的函数: class Bar { public Set<Foo> getFoos(); } 要么写 new Expectations() {{ bar.getFoos(); returns(foo1, foo2, foo3); }}; 返回单个集合,或 final Set<Foo> foos1 = new HashSet<Foo>(asList(foo1, foo2)); final Set<Foo> foos2 = new Has

我要模拟的函数:

class Bar {
  public Set<Foo> getFoos();
}
要么写

new Expectations() {{ bar.getFoos(); returns(foo1, foo2, foo3); }};
返回单个集合,或

final Set<Foo> foos1 = new HashSet<Foo>(asList(foo1, foo2));
final Set<Foo> foos2 = new HashSet<Foo>(asList(foo3, foo4, foo5));
new Expectations() {{ bar.getFoos(); returns(foos1, foos2); }};
final Set foos1=新哈希集(asList(foo1,foo2));
final Set foos2=新哈希集(asList(foo3、foo4、foo5));
新的期望(){bar.getFoos();返回(foos1,foos2);};

返回一系列集合。

谢谢,但你误解了我的问题。您建议每次调用
bar.getFoos()
时都返回相同的值,但是如果每次都要返回不同的值呢。这意味着调用
返回(Set s1,Set s2)
。但理想情况下,我应该能够将任意数量的集合传递给
returns
函数。我可以通过调用
返回(整数数组)
来使用基本类型,但我不能使用
集合来实现,因为我无法创建泛型集合数组。基本上,我要问的是如何尽可能动态地实现测试预期。然后我会编写一个参数化测试,并将不同的参数传递给它。@kai我编辑了答案;录制API非常灵活,可以接受任何可以转换为一组或多组
Foo
的内容。
new Expectations() {{ bar.getFoos(); returns(foo1, foo2, foo3); }};
final Set<Foo> foos1 = new HashSet<Foo>(asList(foo1, foo2));
final Set<Foo> foos2 = new HashSet<Foo>(asList(foo3, foo4, foo5));
new Expectations() {{ bar.getFoos(); returns(foos1, foos2); }};