`

stub 与 mock 的区别

阅读更多

有些东西就是这样,有些东西你心理面很明白,可是当你要给别人讲的时候却发现有一点点困难。

 

关于Stub & Mock的确别,我的理解是:

 

1.先说不同点:

 

   Stub方法里面需要实现逻辑,因为对Stub的调用者需要依赖,stub模块或函数的返回值,正因为此,搭建stub跟mock比起来,是比较耗费精力的。也正因为此,stub一般用于粗粒度测试。

 

   而mock的关键则是他要足够啥,只要能够让他的依赖者与之进行足够的交互既可以,正因为他傻,所以他的编写相对较容易,也正因为他傻,创建mock的工作可以由Easymock,mockmaker来自动完成,也正因为此,他可以用作细粒度的测试。

 

2.再说相同或想联系的地方。

 

   都能够对系统进行隔离,

 

   测试的很多时候我们会把一个mock退化成一个简单的stub,大多数的mock生成工具也都支持这一点。从这一点我们也可以看出,虽然作为很不同的两个概念,但他们之间也不是永远有着严格的界限。

 

其他的呢?关于设计与使用上的更多考量呢? 呵呵 这里推荐Martin Fowler 的一篇文章,文章很好,是naias宝宝 发给我的,感谢naias宝宝。:)

 

Mocks Aren't Stubs

Mocks Aren't Stubs(一个翻译的版本)

分享到:
评论
1 楼 mlzboy 2008-08-18  
刚看到martin flower的e文头痛,于是google了一下就到你这了
Global site tag (gtag.js) - Google Analytics