期待EasyMock中的其他参数

时间:2013-05-26 09:56:18

标签: 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();

或者我应该实现自己的IArgumentMatcher实现?

1 个答案:

答案 0 :(得分:1)

您可以使用expect的{​​{3}}方法:

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;
        }
    }
});

N.B:启用String需要Java 7。