2

目前我有需要测试以下情况的场景。

  • 如果我用学校名称填写文本字段。
  • 然后它应该去那个子域网址

例如。如果我将 xyz 大学放在文本字段中,那么它应该得到 xz.lvh.me:3000 xyz 大学的短名称是存储在数据库中的 xz。

homepage.feature 特征:首页 需要查看大学领域

  Scenario Outline: Fill up universities
    When i fillup university name "<name>"
    Then it should go to their login page "<subdomain>"

  Examples:
    | name |   subdomain |
    | sp College  |  sp  |  

主页.rb

When /^i fillup university name "([^"]*)"$/ do |name|
  visit @@url
  choose('institution_category_school')
  fill_in "search_institution_name", :with => name
  click_button "Go"
end

Then /^it should go to their login page "([^"]*)"$/ do |subdomain|
  #so i need to check that produced url == "#{subdomain}.lvh.me:3000/"
end

下面是我的配置文件。支持/env.rb

require 'rubygems'
require 'capybara'
require 'capybara/dsl'
require 'rspec'

Capybara.run_server = false
Capybara.default_driver = :selenium
Capybara.default_selector = :css

module Helpers
  def without_resynchronize
    page.driver.options[:resynchronize] = false
    yield
    page.driver.options[:resynchronize] = true
  end
end

World(Capybara::DSL, Helpers)

@@url= "http://lvh.me:3000/"

使用 Rails 3.1.1、黄瓜 1.1.4、rspec 2.8.0

4

1 回答 1

1

使用 Capybara,您可以使用以下方法获取浏览器的当前 url:

current_url

然后你可以使用你正常的 rspec 断言:

current_url.should == "#{subdomain}.lvh.me:3000/"
于 2012-04-25T13:36:48.500 回答