2016-04-28 133 views
0

當我創建我的應用程序的功能測試得到以下錯誤:的Ruby on Rails應用程序測試使用RSpec和水豚

ActionController::RoutingError: 
    No route matches [GET] "/example" 

我的應用程序使用的子域,並且這些子域名中的子應用程序(發動機/模塊)。現在,當我爲水豚設置app_host或default_host的通過feature_subdomain_helper像

Capybara.app_host = "example.lvh.me" or 
Capybara.default_host = "example.lvh.me" 

,然後進入我rails_helper.rb我添加以下代碼行

config.extend SubdomainHelpers, type: :feature 

我得到同樣的錯誤。現在我認爲配置的子域不被我的功能測試考慮。

我Rspec的版本是:3.2 和水豚版本:2.4.4

我的樣本特徵的測試看起來像:

require 'rails_helper' 
feature 'Example Page' do 

    scenario 'visit example page' do 

    visit "/example" 

    expect(page).to have_content 'Example' 
    end 
end 

有某人知道我做錯了什麼?

編輯: Mainapp路線:

constraints(Subdomain) do 
    mount Example::Engine => '/', as: 'example' 
end 

引擎路線:

Example::Engine.routes.draw do 

    scope '/example', nav_scope: 'example' do 
    end 
end 
+0

你的routes.rb是什麼樣的? –

+0

添加路由條目//已編輯 – puQ

回答

0

的Capybara.default_host和Capybara.app_host稍微有些誤導,因爲它們都需要設置爲網址的名稱功能正常

Capybara.default_host = "http://example.lvh.me" 

如果這樣不能解決您的問題ch eck rake routes並確保您認爲在'/ example'處掛載的操作確實是。

+0

路由存在並安裝在'/ example'。並且設置了default_host和app_host或僅啓用時。那就是我不明白問題的原因。 – puQ

+0

@ puQ你是否修復了你的app_host和default_host設置爲URL而不是主機名,正如我在我的回答中提到的那樣?這是否有所作爲? –

+0

是的,我已將我的app_host/default_host設置修復爲網址。結果是相同的錯誤 – puQ