mai*_*aik 5 capybara rspec2 ruby-on-rails-3
我正在阅读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
Run Code Online (Sandbox Code Playgroud)
其余的错误说Failure/Error: expect(page.current_url).to eql(project_url(project)).
我做了一些谷歌搜索,人们说将以下内容放在config/environments/development.rb中:
Rails.application.routes.default_url_options[:host] = 'localhost:3000'
Run Code Online (Sandbox Code Playgroud)
不幸的是,这没有任何作用.
host语句应该放在config/environments/test.rb而不是development.rb中,因为你正在运行测试.
您看到'example.com'的原因是Capybara将此设置为默认主机.要改变这种状况,只需添加以下行spec_help后 require 'capybara'
Capybara.default_host = 'localhost:3000'
Run Code Online (Sandbox Code Playgroud)
参考:https://rspec.lighthouseapp.com/projects/16211-cucumber/tickets/206
那么你的网址应该与你在test.rb中设置的匹配.
无论如何,我宁愿不current_path直接使用那个麻烦.
| 归档时间: |
|
| 查看次数: |
7581 次 |
| 最近记录: |