【问题标题】:Getting undefined method `get' for #<RSpec::ExampleGroups in my rspec在我的 rspec 中为#<RSpec::ExampleGroups 获取未定义的方法“get”
【发布时间】: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


【解决方案1】:
describe 'Projects API', type: :request do
  # ...
end

另外,请确保您已将 require 'rails_helper' 包含在您的 projects_spec.rb 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多