测试问题域

测试问题域: Test Double, 以及为什么Mock之争都争错了方向 - 切尔斯基 - 博客频道 - CSDN.NET http://blog.csdn.net/chelsea/article/details/7176479

于是这里引入了新的问题: 手工编写替身类太繁琐了, 体力劳动, 重复代码, 大量的测试用例要求大量的替身类. 尤其是测试交互的那些替身类, 要能够记录和断言传入的参数, 调用顺序等. 为解决这些问题需要对替身类进行设计. 而人们发现主流语言Java, C#等提供的语言特性可以动态的生成这些替身类, 简化手工操作和代码量. 于是这类工具被制造出来, 称为mock工具.
换言之, mock工具解决的不是测试中的依赖问题, 而是实现依赖的测试替身手工维护成本太高的问题. (只不过其中对"如何测试交互"那部分的支持被称为mock对象而已)

第二种变化导致了mock的滥用. 是的, 强大的工具容易被滥用: 我能够断言交互顺序不意味着所有的测试都需要断言顺序, 我能够断言参数不意味着所有的测试我都去断言参数. 缺乏对应用场合的识别, 缺乏对系统的洞察, 导致大量脆弱的测试. 真正重要的是识别问题, 然后选择合适的工具. Mock工具也都支持Dummy, Stub, Fake等应用场景, 不要浪费了这些功能.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,179评论 19 139
  • Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与...
    熊熊要更努力阅读 28,463评论 2 25
  • Instrumentation介绍 Instrumentation是个什么东西? Instrumentation测...
    打不死的小强qz阅读 7,848评论 2 39
  • 你觉得孩子的幼小衔接是从小婴儿就开始了吗?你觉得孩子的幼小衔接是学习兴趣学习习惯的培养而不是学习知识的堆砌吗?如果...
    Betty_b9cb阅读 308评论 0 0
  • 一、我的价值观 二、职业价值观 1.分值最高 成就感18分:工作的目的和价值,在于不断穿心,不断取得成就,不断得到...
    李琳艳阅读 374评论 0 3