3

rspec_api_documentation を使い始めたばかりですが、API で動作させることができません。readme の最初の例と同じくらい基本的な単純な仕様を作成しましたが、エラーが発生し続け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

そしてここにコントローラーがあります

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の下にあります

どんな助けでも大歓迎

4

1 に答える 1

4

設定ブロックが必要なようですので、サンプルアプリのようにacceptance_helper.rbを作成し、specにインポートしました。

于 2016-01-29T12:09:45.333 に答える