2013-03-20 2 views
-1

Как получить доступ к объекту, объявленному в методе с использованием powermock-mockito?Как получить доступ к объекту, объявленному в методе?

. Например:

Class A 
{ 

private void method1() 
{ 
    B b = new B(); 
    // This method returns nothing , and I have no intention to change it's return type or //any other things. 
} 

} 

Class B { 

public B() 
{ 

} 

} 

Сейчас я пишу тестовый случай, который вызывает этот частный метод, в моем тесте я хочу, чтобы получить значение объекта B, созданный в method1 (PowerMock-Mockito)

+0

Я не уверен, что это возможно. Так как ваш метод ничего не возвращает, он должен каким-то образом изменить состояние «А», я бы предположил. Почему бы вам не проверить это? –

+0

не может powermock управлять этим для пользователей? :) – user2181531

+0

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

ответ

0

Вы не можете получить доступ к объекту B, поскольку его область действия завершена после того, как этот метод выполняется, и он будет доступен для сбора мусора, если больше нет ссылок. Попробуйте объявить переменную на уровне класса и инициализировать в своем методе. Затем вы можете использовать отражение, чтобы получить объект. Если вы используете весну, ReflectionTestUtils - это удобный класс для достижения этого.

+0

Да, но у powermock есть api, называемый whenNew, я имею в виду насмешку над конструкцией объекта, а затем получить значение , не так ли возможно – user2181531

+0

Не уверен, что вы можете получить созданный объект с помощью whenNew – pravat