Java 在EasyMock中需要其他参数

Java 在EasyMock中需要其他参数,java,unit-testing,easymock,Java,Unit Testing,Easymock,有没有一种简单的方法可以用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(); 对象a、b、c; expect(a.getB(“string1”)).andRe

有没有一种简单的方法可以用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();
对象a、b、c;
expect(a.getB(“string1”)).andReturn(a.anytime();
expect(a.getB(“string2”)).andReturn(b.anytime();
expect(a.getB()).andReturn(c.anytime();
或者我应该实现自己的
IArgumentMatcher
实现吗

您可以使用
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;
        }
    }
});
expect(a.getB((String)anyObject()).andAnswer(new IAnswer()){
公共MyClass答案(){
字符串in=(字符串)getCurrentArguments()[0];
开关(输入){
案例:“string1”:
返回a;
案例:“string2”:
返回b;
违约:
返回c;
}
}
});
注意:打开
String
需要Java7