2013-03-20 55 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() 
{ 

} 

} 

現在我寫我想在方法1中創建對象B的值,它調用這個私有方法,在我的測試情況下,測試案例(PowerMock-的Mockito)

+0

我不確定這甚至是可能的。既然你的方法沒有返回任何東西,它應該以某種方式改變'A'的狀態,我假設。你爲什麼不測試這個? – 2013-03-20 05:52:48

+0

無法powermock管理此用戶? :) – user2181531 2013-03-20 06:05:55

+0

你有沒有考慮閱讀他們的文檔?他們在這裏經歷了很多示例用例:http://code.google.com/p/powermock/wiki/MockitoUsage13 – 2013-03-20 11:51:54

回答

0

你不能訪問對象B,因爲它的作用域一旦執行完畢就結束了,如果沒有更多的引用,它就可以用於垃圾回收。嘗試在類級別聲明變量並在你的方法中初始化。然後你可以使用反射來獲取對象。如果您使用的是Spring,ReflectionTestUtils是一個方便的類來實現這一點。

+0

是的,但powermock似乎有一個叫做whenNew的API,我的意思是嘲笑對象的構造,然後得到值,是不是有可能通過這種方式 – user2181531 2013-03-20 06:06:57

+0

不知道你是否可以用whenNew獲取創建的對象 – pravat 2013-03-20 06:16:49