首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该在rails控制器测试中模拟我的模型吗?

我应该在rails控制器测试中模拟我的模型吗?
EN

Stack Overflow用户
提问于 2009-11-27 13:32:25
回答 3查看 1.3K关注 0票数 4

我在我的报道中发现了漏洞,因为我在控制器示例中一直在嘲笑我的模型。当我移除控制器所依赖的模型的方法时,我不会出现故障。

来自静态类型化语言的TDD,我总是模拟对被测试对象的依赖关系,该对象命中数据库以提高速度。在上面的示例中,我仍然会遇到失败,因为模拟子类是原始对象的子类。我正在寻找一种动态语言的最佳实践。

谢谢。

更新:

在这件事上得到了很多相互矛盾的意见后,似乎可以归结为你所信奉的哲学。

( Rspec社区)似乎采用了严重的顽固依赖,以实现被测试对象的隔离。验收测试(传统上称为集成测试;)用于确保对象与其运行时依赖关系一起工作。

应该/测试::单元社区似乎尽可能地远离固执。这允许您的测试确认您的对象在测试中实际上与它的依赖关系一起工作。

这段视频很好地总结了这一点:http://vimeo.com/3296561

EN

回答 3

Stack Overflow用户

发布于 2009-11-27 13:52:16

是的,在你的控制器例子中,嘲笑你的模型。在模型示例中,测试模型。

票数 2
EN

Stack Overflow用户

发布于 2009-11-27 16:13:07

如果您使用的是摩卡,下面应该这样做。

代码语言:javascript
运行
复制
Mocha::Configuration.prevent(:stubbing_non_existent_method)
票数 2
EN

Stack Overflow用户

发布于 2017-02-02 13:27:39

在编写单元测试时,整个目标应该是只测试该单元。将模型视为一个单元,并分别覆盖它。模型的更改不应直接影响控制器的单元测试覆盖率。

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

https://stackoverflow.com/questions/1808800

复制
相关文章

相似问题

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