首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Isolation Framework与Mock Framework的区别

Isolation Framework与Mock Framework的区别
EN

Stack Overflow用户
提问于 2013-01-06 22:44:28
回答 2查看 2.5K关注 0票数 10

术语“隔离框架”和“模仿框架”有什么区别?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-08 20:00:45

这两个术语经常互换使用,但有一个重要的区别。在我看来,存根和模拟之间有类似的区别。Stub即模拟隔离框架只提供预定义的输出,从而将“测试”与具有复杂内部状态、响应时间慢等的外部系统隔离开来。即模拟框架不仅在需要时提供预定义的输出,而且还预先编程了期望,形成了期望接收的调用的规范。因此,mock会跟踪其使用情况,如果使用不当,则会导致“测试”失败。但是存根只提供预定义的输出。

你可以在Mocks Aren't Stubs article by Martin Fowler上找到更多

票数 1
EN

Stack Overflow用户

发布于 2014-04-20 19:07:59

我觉得公认的答案是错误的,模拟框架也是隔离框架。

Roy Oshroves的书"The Art of Unit Testing"中的5.1节说

是一种隔离框架,它是一组可编程的API,可以更轻松地创建模拟和存根对象。隔离框架使开发人员不必编写重复的代码来测试或模拟对象交互。

这个定义可能听起来有点乏味,但它需要是通用的,以便包括各种隔离框架。隔离框架适用于大多数具有与之相关的单元测试框架的语言。例如,C++有mockpp和其他框架,还有jMock和EasyMock等。.NET有NMock、Moq、Typemock Isolator和Rhino Mock。

blog post by him中,他提到

模拟隔离框架(模拟框架…但这是一个可怕的名字。单词mock已经被重载了)

所以它们通常指的是同一件事。隔离框架可用于启动模拟,但它也适用于其他测试替身。隔离框架是一个超集,模拟框架是其中的一部分。

test double是一个总括术语,用于

  • 测试存根
  • 伪对象
  • 测试间谍和
  • 模拟对象

<代码>F216

这四种类型来自Lasse Koskela,Effective Unit Testing一书。Martin Fowler和Gerard Meszaros list five types

假objects

  • stubs

  • spies and

  • mocks

  • 虚拟对象

但区别是一样的。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14183182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档