我有一个包含字符串的列表:
final List<String> serialNumbers=new ArrayList<String>();
for(int i=0;i<numberOfPieces;i++){
serialNumbers.add(Integer.toString(i));
}
现在我希望我的MockObject在每次调用mock方法时都将List中的下一个元素作为String返回,我该怎么做?
context.checking(new Expectations(){{
exactly(numberOfPieces).of (myMock).getSerialNumber();
// will return serialNumbers i-th element
}});
答案 0 :(得分:0)
解决方案:使用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));
}});