2014-11-14 4 views
0

У меня есть метод:Как издеваются и проверить метод с аргументом T

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: Неправильное использование аргумента matchers!

ценят любую (помощь)

+0

Это полное сообщение об ошибке? – Puce

+0

по какой-то причине, к сожалению, я не могу предоставить полную трассировку стека – Nikolas

+0

Не трассировка стека, но должно быть подробное сообщение об ошибке. – Puce

ответ

1

AFAIK, Mockito требует, чтобы все параметры, чтобы быть не matchers или все параметры, которые будут matchers. Это не позволяет их смешивать. (Подробное сообщение об ошибке должно сказать вам об этом, хотя.)

Try:

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

Прошу прощения, я ошибся. Существует не шпион, а макет объекта, который вызывает мой метод. Я пытался сделать то, что вы сказали, но ошибка такая же. – Nikolas

+0

я должен использовать 'когда (mockObject.doSomething (любой (MyConcreteT.class), любой (AnotherConcrete.class.getClass())) thenReturn (объект);. проверить (mockObject) .doSomething (любой (MyConcreteT. class), any (AnotherConcrete.class.getClass())); – Nikolas