路由规范没有通过,但路由工作

时间:2016-06-28 00:07:38

标签: ruby-on-rails ruby json rspec

当我去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

我不太确定在哪里寻找问题。

2 个答案:

答案 0 :(得分:1)

您没有创建Guest对象,因此您的测试失败,因为它无法找到它。在致电gate1之前,您应该创建您的访客。类似的东西:

get

然后尝试这样:

user = Guest.create!(:username => "jdoe")

请注意!您的测试数据库与开发数据库不同。所以,很可能你在dev中有这个用户但没有参加测试。

答案 1 :(得分:0)

我发现了解决方案:bundle exec rake db:seed RAILS_ENV = test --trace

我第一次用错字跑这条线。糟糕!