【发布时间】:2010-12-19 18:29:10
【问题描述】:
我想从牛排规范访问 user1.application.local.dev/panel/new。
我该怎么做?
【问题讨论】:
标签: ruby-on-rails rspec capybara
我想从牛排规范访问 user1.application.local.dev/panel/new。
我该怎么做?
【问题讨论】:
标签: ruby-on-rails rspec capybara
第 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 或任何您想要的,除了 rack-test(默认)
当然,请输入您选择的域和端口。
第 3 步:
将 config.before 块添加到您的 spec/spec_helper.rb
RSpec.configure 做 |config|
config.before:每个都做
Capybara.app_host = "http://davinci.testing.dev:8082"
结束
结束
当然,请输入您选择的域和端口。
第 4 步:
添加一个助手来切换子域。
Spec/acceptance/support/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'
【讨论】: