【发布时间】:2016-04-02 23:42:15
【问题描述】:
Rails 4.2.5,rspec-rails 3.0.2
我想测试我的 API。所以我在 /spec 中创建了requests 目录。有一个文件叫projects_spec.rb
代码如下:
describe 'Projects API' do
describe 'GET /projects' do
it 'should return 401 HTTP code' do
get '/api/v1/projects'
expect(response.status).to eq(401)
end
end
end
当我运行这个测试时,我得到了
NoMethodError: undefined method `get' for #RSpec::ExampleGroups::ProjectsAPI::GETProjects:0x007fee73ad9b48>
怎么了?
# rails_helper.rb
config.infer_spec_type_from_file_location!
【问题讨论】:
-
您是否在规范文件的顶部缺少
require 'rails_helper'? -
@PaulFioravanti 它有效,但我收到大量警告。这是我的堆栈跟踪pastebin.com/LaYmyQEK。此外,有没有办法避免在每个规范文件中添加 require 'rails_helper'。似乎它不是 DRY。
-
您应该在每个规范中添加
require 'rails_helper'。当然,您可以使用一些元编程来确保/spec目录下的任何文件都以这一行作为第一行,但将其放在那里是一种惯例 -
thanx,巨大的堆栈跟踪呢?
标签: ruby-on-rails ruby ruby-on-rails-4 rspec ruby-on-rails-5