我有一个应用程序,使用子域切换数据库(多租户).我正在try 使用水豚进行集成测试,它实际上非常依赖子域.
我的理解是,将Capybara.default_host=
设置为某个值会使我所有的请求都来自这个主机.事实似乎并非如此.在this post中,作者建议只使用主机访问显式url,但如果我到处浏览,这会变得有点烦人.我只想设置主机,然后按照预期使用rails路径.不确定我做错了什么,但以下是我try 过的:
# 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)
,因为每次都有点烦人.否则为什么会存在这个默认的_主机选项?