我们可以不使用powermockito来模拟私有方法吗?我知道虽然powermockito是可能的,但只是想与所有人核对,是否可以通过其他方法来进行。 谢谢 -山姆
答案 0 :(得分:2)
根据设计,没有PowerMockito或类似工具是不可能的。
请参见Mockito's Wiki,其中给出以下原因:
这需要对类加载器进行黑客攻击,而这绝不是防弹措施,它 更改API(您必须使用自定义测试运行器,为类添加注释, 等。)
这很容易解决-只需更改 从私有到受包保护(或受保护)的方法。
这需要 团队花时间实施和维护它。而且它不 给定点(2)和已经实施的事实是有意义的 在不同的工具(powermock)中。
最后...模拟私有方法是一个 提示面向对象的理解存在问题。 在OO中,您希望对象(或角色)进行协作,而不是方法。忘记 关于Pascal和程序代码。考虑对象。
当然,在某些情况下,无法解决,而只需退后一步,然后
答案 1 :(得分:-1)
是的,我们可以为此使用Java供应商提供的Reflection API。