使用rails编写RSpec测试时,spec/requests文件夹和spec/controllers应该包含哪些内容?

Nic*_*ill 6 ruby ruby-on-rails rspec2 rspec-rails ruby-on-rails-3

我对rails非常陌生,并试图通过实现测试来"正确"地做事.昨天我使用脚手架生成器创建了我的第一个模型/视图/控制器配置.虽然我被告知你真的不应该使用脚手架,但它很有用,这样我才能学习如何构建Rails代码.

我注意到的一件事是自动生成的RSpec主要放在spec/controllers文件夹中.然而,当我观看Railscasts的这一集时,我注意到他使用了

rails generate integration_test [test_name]
Run Code Online (Sandbox Code Playgroud)

将单个测试文件放在spec/requests文件夹中的命令.然而,他所写的所有测试都与控制器进行了交互.我想要确定的是存储这些测试的最佳实践.

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

Ism*_*reu 6

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

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

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

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