如何使用参数T模拟和验证方法

时间:2014-11-14 09:49:36

标签: java mocking mockito verify parameterized-types

我有一个方法:

public V doSomething(T t, Class<V> classV){}

如何使用mockObject调用此方法并验证它?

我这样想:

when(mockObject.doSomething(any(MyConcreteT.class), AnotherConcrete.class).
                thenReturn(obj);    
verify(mockObject).doSomething(any(MyConcreteT.class), AnotherConcrete.class);

但收到错误

  

InvalidUseOfMatchersException:参数匹配器的使用无效!

欣赏任何(帮助)

1 个答案:

答案 0 :(得分:1)

AFAIK,Mockito要求所有参数都是非匹配器或所有参数都是匹配器。它不允许混合它们。 (但是详细的错误消息应该告诉你这个。)

尝试:

when(mySpy.doSomething(any(MyConcreteT.class), eq(AnotherConcrete.class)).
                thenReturn(obj);    
verify(mySpy).doSomething(any(MyConcreteT.class), eq(AnotherConcrete.class));