2013-03-20 5 views
-1

Давайте рассмотрим пример (Примечание Я использую PowerMock - Mockito)Доступ к исходному объекту, а не к возврату в powermock-mockito?

Class A { 

public void method1(Object obj) 
{ 

} 

} 

Теперь, когда мы используем Mockito, у нас есть API, как, когда (A.method1 (obj2)) thenReturn (obj3);. Вместо того, чтобы возвращать настраиваемый объект obj3 при вызове метода, можем ли мы получить доступ к исходному объекту obj, переданному методу 1 в нашем тестовом случае?

+0

Рассматривали ли вы читать на их документации? Они просматривают множество примеров использования здесь: http://code.google.com/p/powermock/wiki/MockitoUsage13 –

ответ

0

Вам нужно будет использовать thenAnswer(). И я считаю, что подпись должна быть

public Object method1(Object obj) 

Не уверен, почему вы хотите, чтобы вернуть тот же объект в тест, который вы как раз проходя от испытания. Что на самом деле вы пытаетесь протестировать в этом случае?

UPDATE

Похоже, что вы ищете, ArgumentCaptor

ArgumentCaptor<Object> captor = ArgumentCaptor.forClass(Object.class); 
verify(a).method1(captor.capture()); 
Object realObject = captor.getValue() 
+0

, но thenAnswer будет работать только тогда, когда я вызову его через свой тестовый код, я хочу объект реального времени при тестировании реального код. – user2181531

+0

@ user2181531 Если вы ищете что-то, чтобы получить объект, созданный в классе под тестом, когда он называет ваш макет, тогда, пожалуйста, проверьте мой обновленный ответ. –

+0

Я получаю, На самом деле было нулевое взаимодействие с этим макетом, Исключение. – user2181531