测试替身Test double

自动化测试的一个关键是在运行时用一个模拟对象来代替系统中的一部分。这样,应用程序中被测试的那部分与系统其他部分之间的交互可以被严格地掌控,从而更容易确定应用程序中这一特定部分的行为。这样的模拟对象常常就是mock/stub和dummy等。

1.哑对象(dummy object)是指那些被传递但不被真正使用的对象。通常用于添充参数列表。

2.假对象(fake object)可以真正使用的实现,通常利用一些捷径,不适合在生产环境中使用,比如内存数据库。

3.桩(stub)在测试中为每个调用提供一个封装好的响应,通常不会对测试之外的请求进行响应,只用于测试。

4.spy是一种记录一些关于它们如何被调用的信息的桩。这种形式的桩可能是记录它发出去了多少个消息的一个电子邮件服务。

5.模拟对象(mock)是一种在编程时就设定了它预期要接收到调用。如果收到了为预期的调用,它会抛出异常,并且还会在验证时被检查是否收到了它们所预期的所有调用。

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 1.Creating mock objects 1.1Class mocks idclassMock=OCMCla...
    奔跑的小小鱼阅读 2,631评论 0 0
  • php单元测试进阶(12)- 核心技术 - mock对象 本系列文章主要代码与文字来源于《单元测试的艺术》,原作者...
    wanggang999阅读 867评论 0 2
  • Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与...
    熊熊要更努力阅读 28,437评论 2 25
  • Martin Fowler的一篇文章。  Key point: two differences; SUT  'M...
    Luna_Lu阅读 1,676评论 0 4