當我在Cucumber的步驟定義中使用visit
方法,然後通過Capybara的Selenium驅動程序運行該步驟時,儘管未實施控制器,但它仍然通過。Rails 3.1。水豚的Selenium驅動程序不會捕捉路由錯誤
下面是一個例子:
特徵
# features/one.feature
Feature: One
@selenium
Scenario: One
Given I visit the example page
步驟定義
# features/step_definitions/example_steps.rb
Given /^I visit the example page$/ do
visit example_path
end
路線
# config/routes.rb
Example::Application.routes.draw do
resource :example
end
控制器
未實現
結果
Feature: One
@selenium
Scenario: One
Given I visit the example page
1 scenario (1 passed)
1 step (1 passed)
0m18.162s
然而,當我使用RackTest驅動程序的所有作品,因爲它有望成爲和路由除非實施控制器,否則異常會上升。
這是同樣的例子,但與RackTest的用法:
功能
# features/one.feature
Feature: One
@rack_test
Scenario: One
Given I visit the example page
結果
Feature: One
@rack_test
Scenario: One
Given I visit the example page
uninitialized constant ExamplesController (ActionController::RoutingError)
./features/step_definitions/example_steps.rb:2:in `/^I visit the example page$/'
features/one.feature:5:in `Given I visit the example page'
Failing Scenarios:
cucumber features/one.feature:4 # Scenario: One
1 scenario (1 failed)
1 step (1 failed)
我怎麼能強迫水豚,以提高當路由錯誤使用Selenium驅動程序?
謝謝。
Ruby 1.9.2;
Ruby on Rails 3.1.0.rc1;
黃瓜0.10.3;
黃瓜欄0.5.0;
水豚1.0.0.beta1;
Selenium-webdriver 0.2.0。
當您嘗試通過瀏覽器在本地查看頁面時(例如http:// localhost:3000/example),會發生什麼? – 2011-05-26 16:55:04
我收到路由錯誤消息。 – Shamaoke 2011-05-26 17:25:16