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

发布于 2024-10-08 08:12:59 字数 71 浏览 2 评论 0原文

我想从牛排规范访问 user1.application.local.dev/panel/new 。

我该怎么做?

I want to access user1.application.local.dev/panel/new from a steak spec.

How do I do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

撩动你心 2024-10-15 08:12:59

步骤 1. 设置本地 DNS。

http://intridea.com/2010/6/2/using-bind-locally-on-os-x-for-easy-access-to-subdomains?blog=company

步骤 2. 使用水豚支持子域的驱动程序。

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 do |config|
config.before:每个都做
Capybara.app_host = "http://davinci.testing.dev:8082"
结束

当然,输入您选择的域和端口

第四步:

添加一个切换子域的助手。

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

Step 1. Set up a local DNS.

http://intridea.com/2010/6/2/using-bind-locally-on-os-x-for-easy-access-to-subdomains?blog=company

Step 2. Use a Capybara driver that support subdomains.

Either Selenium or Akephalos would do the trick.

Create spec/support/custom_env and put this content in it:

#Capybara.default_driver = :selenium
Capybara.default_driver = :akephalos
Capybara.app_host = 'http://davinci.testing.dev:8082'
Capybara.run_server = false
Capybara.server_port = 8082

Select the capybara driver that you want, either Selenium or akpehalos or whatever you want, except rack-test (default)

Put the domain and port of you choice, of course.

Step 3:

Add the config.before block to your spec/spec_helper.rb

RSpec.configure do |config|
config.before :each do
Capybara.app_host = "http://davinci.testing.dev:8082"
end
end

Put the domain and port of you choice, of course.

Step 4:

Add a helper to switch subdomains.

Spec/acceptance/support/helpers.rb

def switch_to_subdomain(subdomain)
   Capybara.app_host = "http://#{subdomain}.davinci.testing.dev:8082"
end

Put the domain and port of you choice, of course.

Step 5. Use the helper method in your spec.

Now every-time you want to change of subdomain you do:

scenario "Show school" do                        
   school = School.make!(:name=>"perico")
   switch_to_subdomain(school.name)    
   visit("/")                      
   page.has_content?("Welcome to perico")
end
迎风吟唱 2024-10-15 08:12:59

这是水豚的问题。在需要时设置 default_host

Capybara.default_host = 'sub.domain.com' 

This is a Capybara question. Set the default_host when you need it

Capybara.default_host = 'sub.domain.com' 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文