我正在使用JMockit 1.10并且需要为Collection中的每个元素部分模拟一个方法。
如果我将它们分别传递给像
这样的新NonStrictExpectation,我就能做到这一点final Object obj1 = objs.get(0);
final Object obj2 = objs.get(1);
new NonStrictExpectations(obj1, obj2) {{
...
}};
然而,如果我在循环中传递它们,它会抱怨“类已被嘲笑”。
for (int i = 0; i < 2; i++) {
final Object _obj = objs.get(i);
new NonStrictExpectations(_obj) {{
}};
}
我可以知道为什么吗?或者做到这一点的正确方法是什么?
答案 0 :(得分:0)
如果没有关于你真正想要实现什么的更多信息,我的猜测是这里适当的解决方案是部分模拟集合中元素的类,因此模拟所有这样的实例。此外,永远不应该在循环中创建期望块;还有其他方法可以处理对同一个模拟方法的多次调用。