2013-03-20 60 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