栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

无法将模拟对象传递给类的实例时如何使用Mockito

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

无法将模拟对象传递给类的实例时如何使用Mockito

从根本上讲,您正在尝试用替代实现替换私有字段,这意味着您违反了封装。您唯一的其他选择是重组类或方法,以使其更好地设计用于测试。

评论中有很多简短的答案,因此我在这里将它们汇总(并添加了我自己的一些观点)作为Community Wiki。如果您有其他选择,请随时在此处添加。

重组班级
为有问题的字段创建设置器,或放宽该字段的可见性。

创建采用DAO的依赖项注入重写或静态方法,并使公共实例方法委托给它。而是测试更灵活的方法。

public String myMethod() { return myMethod(dao); }String myMethod(Dao dao) {  }
  • 添加构造函数重载或静态工厂方法以替换私有字段以进行测试。

  • 完全构造用于依赖项注入的类。(索蒂里奥斯扎Delimanolis,EJK)

请注意,如果将测试放在相同的Java包中(可能在单独的源代码树中),则其中某些测试包可能是私有的。在任何情况下,好名字和文档都有助于使您的意图清晰明了。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508223.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号