5

Rails 4 in Action を読んでいます。Rspec と Capybara でテスト中に前述のエラーが発生します。私のviewing_projects_spec.rbは次のようになります:

require 'spec_helper'

feature "Viewing projects" do
  scenario "Listing all projectcs" do
    project = FactoryGirl.create(:project, name: "TextMate 2")
    visit '/'
    click_link 'TextMate 2'
    expect(page.current_url).to eql(project_url(project))
  end
end

エラーの残りの部分には、Failure/Error: expect(page.current_url).to eql(project_url(project)).

私はいくつかのグーグルを行い、config/environments/development.rb内に次を配置するように言われました:

Rails.application.routes.default_url_options[:host] = 'localhost:3000'

残念ながら、これは何もしません。

4

1 に答える 1

7

テストを実行しているため、host ステートメントは development.rb ではなく config/environments/test.rb に配置する必要があります。

追加

「example.com」と表示されるのは、Capybara がこれをデフォルト ホストとして設定したためです。spec_helpこれを変更するには、次の行を後に 追加しますrequire 'capybara'

Capybara.default_host = 'localhost:3000'

参照: https://rspec.lighthouseapp.com/projects/16211-cucumber/tickets/206

次に、URL は test.rb で設定したものと一致する必要があります。

current_pathとにかく、直接使うのに苦労したくないです。

于 2013-04-26T04:30:34.957 に答える