2013-05-26 23 views
0

有沒有一種簡單的方法可以用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

您可以使用expectandAnswer方法:

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