我们可以在不使用powermockito的情况下模拟私有方法。我知道虽然powermockito有可能,但只是想与所有人一起检查,是否有可能通过其他方式。谢谢 - 萨姆
按照设计,如果没有PowerMockito或类似的工具,这是不可能的。
请参阅Mockito's Wiki,其中包含以下原因:
- 它需要对类加载器进行黑客攻击,这种类加载器绝不是防弹的,它会更改API(您必须使用自定义测试运行器,注释类等)。
- 这很容易解决 - 只需将方法的可见性从私有更改为受包保护(或受保护)。
- 它要求团队花时间实施和维护它。鉴于第(2)点以及已经在不同工具(powermock)中实现的事实,它没有意义。
- 最后......模拟私有方法暗示了面向对象的理解存在问题。在OO中,您希望对象(或角色)进行协作,而不是方法。忘记pascal和程序代码。在对象中思考。
当然有些情况下无法解决问题,只需退一步即可