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