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

对象与静态方法设计

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

对象与静态方法设计

我将使用非静态(实例)版本,并将其作为显式依赖项(使用setter)提供给消费者:

  • 然后将其模拟用于单元测试是微不足道的,因此,消费者的测试不会与实现耦合。
  • 换出功能很简单,例如:使用子类;
  • 与依赖项注入系统配合良好。

编辑

为了回应(“有用!”)的评论“这如何帮助嘲笑?”,这是可能的工作方式:

class ThingThatUsesStreamCopier {    // our copier instance. set in constructor, but might equally use    // a setter for this:    private StreamCopier copier;    public ThingThatUsesStreamCopier(StreamCopier copier) {        this.copier = copier;    }    public void makeCopy(Stream in, Stream out) {        // probably something a little less trivial...        copier.copy(in, out);    }}

当我进行测试时

ThingThatUsesStreamCopier
,我可以创建a的模拟对象版本
StreamCopier
ThingThatUsesStreamCopier
使用此模拟实例化该对象。

这样,我就可以完全控制模拟的行为,因此我的测试与的任何实际实现都没有关联

StreamCopier
。我仅测试消费者,而不测试消费者加消耗者。



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

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

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