使用参数作为LIST类型模拟方法

时间:2014-11-23 07:42:33

标签: spring easymock

我想嘲笑下面提到的方法。

public class MockClass {
    public boolean ToBeMocked(Cinput, Coutput, List<CIOChain<Cinput, Coutput>>)
}

应该取代什么?在下面提到的代码?

Easymock.expect(MockClassObject.ToBeMocked(Cinput.class, Coutput.class, ??)).andReturn(true);

1 个答案:

答案 0 :(得分:0)

Class级别,由于类型擦除,所有List接口都是相同的,无论通用类型如何;它们只是在编译时不同。

所以它只是List.class代替??

即,

Easymock.expect(MockClassObject.ToBeMocked(Cinput.class, Coutput.class, List.class)).
   andReturn(true);

在模拟的范围内,您应该真正指定您希望传递给该方法的对象,例如:

Easymock.expect(MockClassObject.ToBeMocked(cInputObj, cOutputObj, listObj)).
   andReturn(true);

如果由于某种原因你不能这样做,你可以使用isA / anyObject变体:

Easymock.expect(MockClassObject.ToBeMocked(isA(Cinput.class), isA(Coutput.class), isA(List.class))).
   andReturn(true);