有没有一种简单的方法可以用 EasyMock 做类似的事情?
Object a, b, c;
expect(a.getB("string1")).andReturn(a).anyTimes();
expect(a.getB("string2")).andReturn(b).anyTimes();
expect(a.getB(<ANYTHING_ELSE>)).andReturn(c).anyTimes();
或者我应该实现我自己的实现IArgumentMatcher
?
有没有一种简单的方法可以用 EasyMock 做类似的事情?
Object a, b, c;
expect(a.getB("string1")).andReturn(a).anyTimes();
expect(a.getB("string2")).andReturn(b).anyTimes();
expect(a.getB(<ANYTHING_ELSE>)).andReturn(c).anyTimes();
或者我应该实现我自己的实现IArgumentMatcher
?
您可以使用以下andAnswer
方法expect
:
expect(a.getB((String)anyObject())).andAnswer(new IAnswer<MyClass>() {
public MyClass answer() {
String in = (String) getCurrentArguments()[0];
switch(in) {
case: "string1":
return a;
case: "string2":
return b;
default:
return c;
}
}
});
注意:开启String
需要 Java 7。