ruby-on-rails - rspec_api_documentation - 未定义方法 `call' 为 nil :NilClass

标签 ruby-on-rails api rspec rails-api rspec-api-documentation

我刚开始使用 rspec_api_documentation 并且无法让它与我的 api 一起工作。创建了简单的规范,与自述文件中的第一个示例一样基本,但它一直向我抛出 undefined method 'call' for nil:NilClass 错误,我不知道是什么导致了问题。

这是完整的堆栈跟踪:

  1) Users GET /api/v1/users Listing users
     Failure/Error: do_request
     NoMethodError:
       undefined method `call' for nil:NilClass
     # /home/swistak/.rvm/gems/ruby-2.2.2/gems/rack-test-0.6.3/lib/rack/mock_session.rb:30:in `request'
     # /home/swistak/.rvm/gems/ruby-2.2.2/gems/rack-test-0.6.3/lib/rack/test.rb:244:in `process_request'
     # /home/swistak/.rvm/gems/ruby-2.2.2/gems/rack-test-0.6.3/lib/rack/test.rb:58:in `get'
     # /home/swistak/.rvm/gems/ruby-2.2.2/gems/rspec_api_documentation-4.7.0/lib/rspec_api_documentation/rack_test_client.rb:38:in `do_request'
     # /home/swistak/.rvm/gems/ruby-2.2.2/gems/rspec_api_documentation-4.7.0/lib/rspec_api_documentation/client_base.rb:42:in `process'
     # /home/swistak/.rvm/gems/ruby-2.2.2/gems/rspec_api_documentation-4.7.0/lib/rspec_api_documentation/client_base.rb:12:in `get'
     # ./spec/acceptance/users_spec.rb:7:in `block (3 levels) in <top (required)>

这是规范

require 'spec_helper'
require 'rspec_api_documentation/dsl'

RSpec.resource 'Users' do
  get '/api/v1/users' do
    example 'Listing users' do
      do_request

      status.should == 200
    end
  end
end

这是 Controller

class Api::V1::UsersController < ApplicationController
  skip_before_action :authenticate_with_token, only: %i(index show create)

  expose(:users)

  def index
    render json: users, each_serializer: ::V1::UserSerializer
  end
end

我的 api 在 localhost:3000/api/v1/users 下

感谢任何帮助

最佳答案

似乎需要配置 block ,所以我刚刚创建了acceptance_helper.rbexample application并在规范中导入它。

关于ruby-on-rails - rspec_api_documentation - 未定义方法 `call' 为 nil :NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35080994/

相关文章:

ruby-on-rails - rspec 验证失败 : 'can' t be blank'

ruby-on-rails - 覆盖 Rails 4 和 SQLite 中的主键列

ruby-on-rails - after_create 回调中的 ActiveJob::DeserializationError - 未找到记录

api - Youtube API 从 Youtube 用户名获取 Google+ ID

javascript - 使用 github API 在点击时显示 repo 提交

ruby-on-rails - 大型测试套件中的 Rspec/FactoryGirl 唯一性验证

ruby-on-rails - Rails - 在 if 语句中将 1 映射为 true

ruby-on-rails - Rails has_many 通过不返回记录

javascript - 如何延迟pdf扫描直到页面完全加载php中的pdfcrowd api?

ruby-on-rails - 避免 Rspec + Capybara 中的代码重复