【发布时间】:2011-12-09 21:02:02
【问题描述】:
我有一个类,我想用一个调用私有方法的公共方法对其进行测试。我想假设私有方法可以正常工作。例如,我想要doReturn....when... 之类的东西。我发现有possible solution using PowerMock,但是这个解决方案对我不起作用。
怎么做?有人遇到过这个问题吗?
【问题讨论】:
-
另一种选择是保护私有方法并在您的测试用例中为其添加覆盖。
-
一般来说,如果您需要存根私有方法,您的对象模型就有问题 - 您是否考虑过重构?
-
@Emma 为什么?如果他的方法调用了一些外部资源,比如数据库,并且他想模拟它以注入一些虚假结果怎么办?
-
@grinch 他应该在单独的适配器类中提取用于访问外部资源的代码。这样他就可以轻松地模拟适配器类,并将测试类中的(业务)逻辑与访问外部资源的技术细节分开。
标签: java testing junit mockito powermock