术语“隔离框架”和“模仿框架”有什么区别?
发布于 2013-01-08 20:00:45
这两个术语经常互换使用,但有一个重要的区别。在我看来,存根和模拟之间有类似的区别。Stub即模拟隔离框架只提供预定义的输出,从而将“测试”与具有复杂内部状态、响应时间慢等的外部系统隔离开来。即模拟框架不仅在需要时提供预定义的输出,而且还预先编程了期望,形成了期望接收的调用的规范。因此,mock会跟踪其使用情况,如果使用不当,则会导致“测试”失败。但是存根只提供预定义的输出。
你可以在Mocks Aren't Stubs article by Martin Fowler上找到更多
发布于 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
的
但区别是一样的。
https://stackoverflow.com/questions/14183182
复制相似问题