缺少链接的主机!请提供 :host 参数,设置 default_url_options[:host],或设置 :only_path 为 true

2024-02-05

我正在阅读《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'

不幸的是这没有任何作用。


主机语句应该放入 config/environments/test.rb 而不是development.rb,因为您正在运行测试。

Add

您看到“example.com”的原因是水豚将其设置为默认主机。要更改它,只需添加以下行spec_help after require 'capybara'

Capybara.default_host = 'localhost:3000'

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

然后您的网址应该与您在 test.rb 中设置的内容相匹配。

无论如何,我不想使用时遇到麻烦current_path直接地。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

缺少链接的主机!请提供 :host 参数,设置 default_url_options[:host],或设置 :only_path 为 true 的相关文章

随机推荐