我正在阅读《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(使用前将#替换为@)