ruby-on-rails – Rails3:如何使用Capybara访问牛排(rspec)规范中的子域

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails3:如何使用Capybara访问牛排(rspec)规范中的子域前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想从牛排规格访问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 do | config |
config.before:每个都做
Capybara.app_host =“http://davinci.testing.dev:8082
结束
结束

当然,请选择您选择的域名和端口.

第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

猜你在找的Ruby相关文章