测试之stub和mock

Mock

关注行为验证。细粒度的测试,即代码的逻辑,多数情况下用于单元测试。

Stub

关注状态验证。粗粒度的测试,在某个依赖系统不存在或者还没实现或者难以测试的情况下使用,例如访问文件系统,数据库连接,远程协议等。

Stub和Mock的相同处

stub和mock都是为了配合测试,对被测程序所依赖的单元的模拟。
简单说,为了测函数A,但A有引用到了函数B,通过模拟B的一些状态或行为测试A。
Stub和Mock都是模拟外部依赖,以便我们能控制。

Stub和Mock的区别

stub基于状态,mock基于行为
stub难于维护
mock有对本身的调用验证
stub是基于状态,mock是基于行为。
Stub是完全模拟一个外部依赖, 而Mock用来判断测试通过还是失败

参考

1、[Junit]stub和mock的区别
2、单元测试之Stub和Mock
3、Mock与Stub的区别
4、Mocks Aren’t Stubs

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 1.Creating mock objects 1.1Class mocks idclassMock=OCMCla...
    奔跑的小小鱼阅读 7,606评论 0 0
  • Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与...
    熊熊要更努力阅读 28,642评论 2 25
  • 原文出处请点击这里 1. 单元测试的必要性 最近项目有在写java代码的单元测试,然后在思考一个问题,为什么要写单...
    luhanlin阅读 6,411评论 2 11
  • 模拟对象 一般都叫 Mock 或 Stub, 两者差不多, 都是模拟被测组件对外依赖的模拟, 存根 stub 就在...
    老瓦在霸都阅读 30,993评论 0 10

友情链接更多精彩内容