私はlocalhost:3000/api/guests/1に行っても私のショーページは表示されますが、仕様を実行しても合格しません。ここで経路指定は合格しませんが経路は正しく動作します
は私の仕様です:
it 'the resource is under the correct namespace' do
get '/api/guests/1'
expect(response).to be_success
end
ここに私のroutes.rbをです:
Rails.application.routes.draw do
namespace :api, defaults: { format: :json } do
resources :gifts, only: :show
resources :guests, only: [:index, :show] do
resources :gifts, only: :index
end
resources :parties, only: [:index, :show]
end
end
ここに私のRSpecの失敗メッセージです:
ActiveRecord::RecordNotFound:
Couldn't find Guest with 'id'=1
私はどこを見れするのは非常にわからないんだけど問題のために。
OKです。 これはショーページに正しい情報を表示します。 get '/ api/guests/1' expect(json ['name'])。to eq( 'John Smith') 期待しています(json ['age'])〜eq(45) expect(json ['favorite_color'])。to eq( 'Blue') end –
私はすでに播種したものにrspecアクセスを与える必要がありますか?データベース? –
いいえ、別々のDBを用意する必要があります。また、各テストの前に必要な変数を準備する必要があります。 Rspecのテストとその組織に関するブログ(https://robots.thoughtbot.com/how-we-test-rails-applicationsなど)を読んでください。テストを開始する前に、必要な変数を初期化して再利用するためのあらゆる種類の方法があります。 –