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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...