在JMockit中对Collection中的每个元素进行部分模拟

时间:2014-08-22 01:55:52

标签: unit-testing mocking jmockit

我正在使用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) {{
    }};
}

我可以知道为什么吗?或者做到这一点的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

如果没有关于你真正想要实现什么的更多信息,我的猜测是这里适当的解决方案是部分模拟集合中元素的,因此模拟所有这样的实例。此外,永远不应该在循环中创建期望块;还有其他方法可以处理对同一个模拟方法的多次调用。