开发中的测试中没有路由错误

时间:2015-05-07 02:42:16

标签: ruby-on-rails ruby testing rspec

所以我有一条路线api.gemstore.dev/gems(使用pow) 在浏览器中我得到一个空数组[],这是完美的,数据库中还没有任何东西,所以我应该得到一个空数组

在我的rspec测试中我有

  setup do
    host! 'api.gemstore.dev'
  end

  test 'As a user, I want to get gems' do
    get '/gems', {}, { 'Accept' => Mime::JSON }
    assert_equal 200, response.status
    assert_equal Mime::JSON, response.content_type
  end

路由

  namespace :api, path: '/', constraints: { subdomain: 'api' } do
    resources :gems
  end

rake routes

   Prefix Verb   URI Pattern                 Controller#Action
   api_gems GET    /gems(.:format)          api/gems#index   {:subdomain=>"api"}
               POST   /gems(.:format)          api/gems#create {:subdomain=>"api"}
   new_api_gem GET    /gems/new(.:format)      api/gems#new {:subdomain=>"api"}
  edit_api_gem GET    /gems/:id/edit(.:format) api/gems#edit {:subdomain=>"api"}
       api_gem GET    /gems/:id(.:format)      api/gems#show {:subdomain=>"api"}
               PATCH  /gems/:id(.:format)      api/gems#update {:subdomain=>"api"}
               PUT    /gems/:id(.:format)      api/gems#update {:subdomain=>"api"}
               DELETE /gems/:id(.:format)      api/gems#destroy {:subdomain=>"api"}
              root GET    /                           static#index

但是这回来时没有路由匹配错误

让我知道您是否需要更多信息,乐意提供,只是不确定要提供什么

1 个答案:

答案 0 :(得分:1)

可能主机未正确设置。

  • host! "my.awesome.host"了解集成规范(继承自ActionDispatch::IntegrationTest)。请参阅docs部分 5.1可用于集成测试的助手
  • @request.host = 'my.awesome.host'用于控制器规范(继承自ActionController::TestCase)。请参阅docs部分 4.4可用的实例变量
  • 如果使用Capybara,check this instead