我很好奇是否有更好的方法来测试页面中是否存在完整的 URL (包括协议)。
使用Capybara 2.10.2和Rails 5.0.0.1,我有以下设置:
# Other config and content excluded for brevity.
RSpec.configure do |config|
config.include Rails.application.routes.url_helpers
end
describe 'Widget', type: :feature, js: true do
it 'shows correct URL' do
# Sets the default_url_options to match the session's server config.
# default_url_options is used by the url
self.default_url_options = {host: page.server.host, port: page.server.port}
# Assume that page contains the full URL.
expect(page).to have_content(root_url)
end
end
我相信我可以在适当的上下文中将default_url_options
settor移动到before(:each)
块。鉴于默认情况下, URL 选项未包含在Capybara中。我不知道在哪里可以使用它们。
有什么想法吗?
答案 0 :(得分:1)
我不知道这对你有用,但这对我有用:
RSpec.configure do |config|
config.before(:type => :feature) do
default_url_options[:host] = "http://localhost:31337"
end
end
Capybara.server_port = 31337
Capybara.app_host = "http://localhost:31337"