当我去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
我不太确定在哪里寻找问题。
答案 0 :(得分:1)
您没有创建Guest对象,因此您的测试失败,因为它无法找到它。在致电gate1
之前,您应该创建您的访客。类似的东西:
get
然后尝试这样:
user = Guest.create!(:username => "jdoe")
请注意!您的测试数据库与开发数据库不同。所以,很可能你在dev中有这个用户但没有参加测试。
答案 1 :(得分:0)
我发现了解决方案:bundle exec rake db:seed RAILS_ENV = test --trace
我第一次用错字跑这条线。糟糕!