【发布时间】:2011-09-26 01:29:33
【问题描述】:
我有一个使用子域来切换数据库的应用程序(多租户)。我正在尝试使用 Capybara 进行集成测试,它确实非常依赖子域。
我的理解是,将Capybara.default_host= 设置为某个值会使我的所有请求都来自该主机。情况似乎并非如此。在this post 中,作者建议只使用主机访问显式 url,但如果我在各处导航,这会变得有点烦人。我只想设置主机,然后能够按预期使用我的 Rails 路径。不知道我做错了什么,但这是我尝试过的:
# spec_helper.rb
RSpec.configure do |config|
config.before(:each, :type => :request) do
Capybara.default_host = 'http://app.mydomain.com'
end
end
# in some_integration_spec.rb
before do
puts "Capybara.default_host: #{Capybara.default_host}"
puts "some_app_url: #{some_app_url}"
end
这会产生输出:
Capybara.default_host: http://app.mydomain.com
some_app_url: http://www.example.com/some_path
我做错了什么? default_host 似乎什么也没做。正如我所说,我不想说visit(Capybara.default_host + some_app_path),因为每次都有点烦人。为什么还有这个 default_host 选项存在?
【问题讨论】:
-
也许对某人有帮助 my answer to this question
标签: ruby-on-rails integration-testing capybara