2014-11-23 4 views
0

Я хочу высмеять нижеприведенный метод.издевательский метод с параметром как тип СПИСОК

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

Что должно быть вместо? в нижеприведенном коде?

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

Я пробовал Easymock.expect (MockClassObject.ToBeMocked (Cinput.class, Coutput.class, List.class)) иReturn (true); Easymock.expect (MockClassObject.ToBeMocked (Cinput.class, Coutput.class, List >)) иReturn (true); Они не работали для меня. –

ответ

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); 
+0

Я пробовал это. Это не сработало для меня. Позже я попробовал приписать это. '(Список >) easymock.anyobject();' –

+0

Всего забыли, что это входит в сферу насмешек! Вы должны использовать варианты 'isA', если по какой-то причине вы не можете ожидать вызова метода с реальными/макетными объектами. – mystarrocks

+0

Btw, что вы подразумеваете под словом «это не сработало»? Неудачно ли это из-за неправильных ожиданий? Разве не было насмешек? – mystarrocks

Смежные вопросы