2012-03-27 14 views
0

我正在使用Cucumber的Cucumber构建我的网站测试框架。我找到了一种使用钩子在黄瓜的水豚司机之间切换的方法。我想在不测试JavaScript的情况下使用RackTest,因为我相信RackTest更快,因为它不会呈现页面。现在我已经创建了3个相同的测试,可以跳转到Google并检查标题是否为Google。每个测试使用不同的驱动程序。 Selenium和WebKit测试工作正常,但RackTest在“”上失败,我应该看到标题“Google”“测试。我附上了我的功能和步骤的副本,并测试了这篇文章中的宝石。cucumber - RackTest无法正常测试Selenium和WebKit都成功了

特点:

Feature: Rack Test 
    In order to run test faster 
    As a tester 
    I want to use Rack Test to preform all non-javascript related test 

    Scenario: Visit a page and check title 
    When I go to "http://www.google.com" 
    Then I should see the title "Google" 

    @firefox 
    Scenario: Visit a page and check title in Firefox 
    When I go to "http://www.google.com" 
    Then I should see the title "Google" 

    @webkit 
    Scenario: Visit a page and check title in WebKit 
    When I go to "http://www.google.com" 
    Then I should see the title "Google" 

步骤:

When /^I go to "(http:\/\/[^"]*)"$/ do |url| 
    visit url 
end 


Then /^I should see the title "([^"]*)"$/ do |title_cont| 
    page.should have_selector "title", text: title_cont 
end 

鱼钩:

Before('@firefox') do 
    Capybara.current_driver = :selenium 
end 

Before('@webkit') do 
    Capybara.current_driver = :webkit 
end 

After('@firefox, @webkit') do 
    Capybara.use_default_driver 
end 

的Gemfile:

group :test do 
    gem 'capybara' 
    gem 'capybara-webkit' 
    gem 'cucumber' 
    gem 'cucumber-rails' 
    gem 'database_cleaner' 
    gem 'factory_girl_rails' 
    gem "rack-test", require: "rack/test" 
    gem 'rspec' 
    gem 'selenium-webdriver' 
end 

回答

1

这是因为rack-test只能测试Rack应用程序(例如你的Ruby On Rails网站)。这不是基于浏览器的解决方案,而Selenium和WebKit都是。这就是为什么rack-test无法访问外部网站(谷歌在你的情况)。

+0

好的,谢谢!很高兴知道。 – Nick 2012-03-27 15:44:44

相关问题