我有一个Strings的列表:
final List<String> serialNumbers=new ArrayList<String>();
for(int i=0;i<numberOfPieces;i++){
serialNumbers.add(Integer.toString(i));
}现在,我希望我的MockObject在每次调用模拟方法时以字符串的形式返回列表中的下一个元素,我如何做到这一点?
context.checking(new Expectations(){{
exactly(numberOfPieces).of (myMock).getSerialNumber();
// will return serialNumbers i-th element
}});发布于 2015-02-19 08:44:44
解决方案:使用onConsecutiveCalls,因为它可以执行一系列操作。
final ReturnValueAction[] serialNumbers=new ReturnValueAction[numberOfPieces];
for(int i=0;i<numberOfPieces;i++){
serialNumbers[i]=new ReturnValueAction(Integer.toString(i));
}
context.checking(new Expectations(){{
exactly(numberOfPieces).of (myMock).getSerialNumber();
will(onConsecutiveCalls(serialNumbers));
}});https://stackoverflow.com/questions/28587584
复制相似问题