首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制器规格与请求规格?

控制器规格与请求规格?
EN

Stack Overflow用户
提问于 2016-11-29 03:10:44
回答 3查看 13.8K关注 0票数 39

我正在开发一个rails API,现在我计划为控制器编写一些RSpec测试。我一直在阅读,但我还不能弄清楚控制器规范和请求规范之间的实际区别,以及在测试API时我可能应该使用哪种规范。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-29 15:08:54

Rails 3和4

控制器规范-控制器规范是一个用于Rails功能测试的RSpec包装器。它允许您在每个示例中模拟单个http请求,然后指定预期的结果。

请求规范- Request规范为Rails的集成测试提供了一个薄薄的包装器,旨在通过整个堆栈来驱动行为,包括路由(由Rails提供)和没有存根(这取决于您)。

因此,如果你想测试API控制器,我建议你使用Controller specs,因为你正在测试单个请求。

Rails 5+

Rails5提高了请求规范的速度和真实性, over Rails版本4的控制器和请求规范。The official recommendation of the Rails team and the RSpec core team is to write request specs instead (of controller specs)

票数 27
EN

Stack Overflow用户

发布于 2017-09-30 16:05:32

事实上,RSpec团队正式声明,控制器规格现在已经过时的

http://rspec.info/blog/2016/07/rspec-3-5-has-been-released/

针对新Rails应用的

:我们不建议将rails控制器测试gem添加到您的应用程序中。Rails团队和RSpec核心团队的官方建议是编写请求规范。请求规范允许您专注于单个控制器操作,但与控制器测试不同的是,它涉及路由器、中间件堆栈以及机架请求和响应。这增加了您正在编写的测试的真实性,并有助于避免控制器规范中常见的许多问题。在Rails 5中,请求规范比rails 4中的请求或控制器规范要快得多,这要归功于Rails委员会团队的Eileen Uchitelle1所做的工作。

票数 32
EN

Stack Overflow用户

发布于 2017-03-23 05:23:47

引用Aaron Sumner的话:

Rails和RSpec团队都建议替换或删除应用程序的控制器测试(也称为功能测试层),支持直接测试模型(单元),或使用更高级别的集成测试。

对于新的API,我更喜欢使用请求规范并达到我的“端点”(也就是模型和业务逻辑),而不是使用控制器测试。

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

https://stackoverflow.com/questions/40851705

复制
相关文章

相似问题

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