ruby-on-rails - 使用 Rails 编写 RSpec 测试时,spec/requests 文件夹和 spec/controllers 应该放什么?

标签 ruby-on-rails ruby ruby-on-rails-3 rspec2 rspec-rails

我对 Rails 还很陌生,并试图通过从一开始就实现测试来以“正确”的方式做事。昨天我使用脚手架生成器创建了我的第一个模型/ View / Controller 配置。虽然有人告诉我您真的不应该使用脚手架,但它很有用,因为我可以了解 Rails 代码的结构。

我注意到的一件事是,自动生成的 RSpec 大部分放在 spec/controllers 文件夹 中。然而当我看到this episode of Railscasts , 我注意到他用了

rails generate integration_test [test_name]

将单个测试文件放入 spec/requests 文件夹 的命令。然而,他编写的所有测试都与 Controller 交互。我要确定的是存储这些测试的最佳做法。

什么时候应该在 spec/requests 文件夹中存储测试,什么时候应该在 spec/controllers 文件夹中存储测试?任何反馈将不胜感激!

最佳答案

实际上,这些是两种类型的测试。在 Controller 文件夹中,您应该创建测试来测试 Controller 操作,在请求文件夹中,您应该放置与 View 交互的测试,这将实际测试您的所有应用程序部分,这就是它被命名为集成测试的原因。

这里有一些关于这两种测试的文章。

http://everydayrails.com/2012/04/07/testing-series-rspec-controllers.html

http://everydayrails.com/2012/04/24/testing-series-rspec-requests.html

关于ruby-on-rails - 使用 Rails 编写 RSpec 测试时,spec/requests 文件夹和 spec/controllers 应该放什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801078/

相关文章:

ruby-on-rails - 用户标记自动链接 - Rails

ruby - 如何使用 Ruby Observer 方法同时更新两个参数?

ruby-on-rails - Rails 3 能够从 Microsoft Access 导入/导出吗?

ruby-on-rails - Zurb Foundation Nav 在 Rails 项目中的风格有限

ruby-on-rails - Rails ActiveRecord::RecordInvalid 异常未在关联的 after_create 中引发

ruby-on-rails - 无法与 Mina 部署协商 key 交换方法

javascript - 如何使用 onblur 在 javascript 中隐藏一个 div - rails

Ruby 在扩展时调用模块方法

ruby - 如何在 Ruby 中拯救 "invalid Unicode codepoint"?

ruby-on-rails-3 - #<Class:0x17a6408> -rails-3的未定义方法`to_key'