我想从牛排规范访问 user1.application.local.dev/panel/new。
我该怎么做?
步骤 1. 设置本地 DNS。
http://intridea.com/2010/6/2/using-bind-locally-on-os-x-for-easy-access-to-subdomains?blog=company
步骤 2. 使用支持子域的 Capybara 驱动程序。
Selenium 或 Akephalos 都可以解决问题。
创建 spec/support/custom_env 并将此内容放入其中:
#Capybara.default_driver = :selenium
Capybara.default_driver = :akephalos
Capybara.app_host = 'http://davinci.testing.dev:8082'
Capybara.run_server = false
Capybara.server_port = 8082
选择您想要的水豚驱动程序,Selenium 或 akpehalos 或任何您想要的,除了机架测试(默认)
当然,放置您选择的域和端口。
第 3 步:
将 config.before 块添加到您的 spec/spec_helper.rb
RSpec.configure 做 |config|
config.before :each do Capybara.app_host = " http://davinci.testing.dev:8082 " end
end
当然,放置您选择的域和端口。
第4步:
添加一个助手来切换子域。
规范/接受/支持/helpers.rb
def switch_to_subdomain(subdomain)
Capybara.app_host = "http://#{subdomain}.davinci.testing.dev:8082"
end
当然,放置您选择的域和端口。
步骤 5. 在您的规范中使用辅助方法。
现在,每次您想要更改子域时,您都会这样做:
scenario "Show school" do
school = School.make!(:name=>"perico")
switch_to_subdomain(school.name)
visit("/")
page.has_content?("Welcome to perico")
end
这是一个水豚问题。default_host
需要时设置
Capybara.default_host = 'sub.domain.com'