【发布时间】:2015-01-19 14:57:05
【问题描述】:
阅读后: https://code.google.com/p/powermock/wiki/BypassEncapsulation 我意识到了,我不明白。
参见本例:
public class Bar{
private Foo foo;
public void initFoo(){
foo = new Foo();
}
}
如何使用 PowerMock 访问私有成员 foo(例如验证 foo 不为空)?
注意:
我不想要的是用额外的getmethods 修改代码。
编辑:
我意识到我错过了解决方案链接页面上的示例代码块。
解决方案:
Whitebox.getInternalState(bar, "foo");
【问题讨论】:
-
我建议在编写这种类型的测试之前仔细考虑,反对检查私有变量值的论据总结在这里:stackoverflow.com/questions/2981476/…
-
真正的测试有点复杂,涉及休眠、会话和会话工厂,我尝试检查我们的dbInterface,而不必初始化完整的休眠内容。在大多数方法中,我们修改对象状态并且没有真正的输入/输出功能。
标签: java junit mockito private powermock