Буду очень признателен, если вы поможете со следующей проблемой / актом неопытности.Я обыскивал обычных подозреваемых (google, stackoverflow, группы и т. Д.) Безрезультатно, и если я пропустил что-то явно очевидное, мои извинения.
Я начинаю изучать огурец ROR3.1 плюс через следующий онлайн-учебникна http://ridingrails.net/rails-3-cucumber-started-outside-in-testing/, что кажется великолепным, за исключением моего отсутствия успеха.
Все хорошо и хорошо, за исключением того, что по какой-то причине один шаг за пределами моей досягаемости, если бы вы могли помочь, он был бы очень признателен.
Функция:
Feature: User manages agents
Scenario: User adds a new agent
Given I go to the new agent page
And I fill in "Name" with "Alex"
When I press "Create"
Then I should be on the agent list page
And I should see "Alex"
Ошибка:
Добавление: пользователь управляет агентами
Scenario: User adds a new agent # features/agent_management.feature:2
Given I go to the new agent page # features/step_definitions/web_steps.rb:48
And I fill in "Name" with "Alex" # features/step_definitions/web_steps.rb:60
When I press "Create" # features/step_definitions/web_steps.rb:52
Then I should be on the agent list page # features/step_definitions/web_steps.rb:187
expected: "/agents"
got: "/" (using ==) (RSpec::Expectations::ExpectationNotMetError)
./features/step_definitions/web_steps.rb:190:in `/^(?:|I )should be on (.+)$/'
features/agent_management.feature:6:in `Then I should be on the agent list page'
And I should see "Alex" # features/step_definitions/web_steps.rb:105
Failing Scenarios:
cucumber features/agent_management.feature:2 # Scenario: User adds a new agent
Виновные части в соответствии со мной => paths.rb:
def path_to(page_name)
case page_name
when /^the home\s?page$/
'/'
when /the agent list page/
agents_path
...
Файл web_steps.rb является стандартным, сгенерированным, как описано в руководстве.Вот функция на всякий случай:
Then /^(?:|I )should be on (.+)$/ do |page_name|
current_path = URI.parse(current_url).path
if current_path.respond_to? :should
current_path.should == path_to(page_name)
else
assert_equal path_to(page_name), current_path
end
end
Дополнительные сведения , которые могут помочь:
ruby -v => ruby 1.9.2p180 (2011-02-18 редакция 30909) [i686-linux]
rails -v => Rails 3.1.0.rc5
cat / proc / version / => версия Linux 2.6.38-10-универсальный (buildd @ vernadsky) (версия gcc 4.5.2 (Ubuntu / Linaro 4.5.2-8ubuntu4))
cat / etc / issue => Ubuntu 11.04 \ n \ l
Если требуются какие-либо другие детали, пожалуйста, дайте мне знать, поскольку я озадачен.
Заранее благодарю за любую помощь.
РЕДАКТИРОВАТЬ рейк-маршруты выводятся ниже:1049 *
root / {:controller=>"home", :action=>"index"}
agents GET /agents(.:format) {:action=>"index", :controller=>"agents"}
POST /agents(.:format) {:action=>"create", :controller=>"agents"}
new_agent GET /agents/new(.:format) {:action=>"new", :controller=>"agents"}
edit_agent GET /agents/:id/edit(.:format) {:action=>"edit", :controller=>"agents"}
agent GET /agents/:id(.:format) {:action=>"show", :controller=>"agents"}
PUT /agents/:id(.:format) {:action=>"update", :controller=>"agents"}
DELETE /agents/:id(.:format) {:action=>"destroy", :controller=>"agents"}
контроллер:
class AgentsController < ApplicationController
def index
@agents = Agent.all
end
def new
@agent = Agent.new
end
def create
@agent = Agent.new(params[:agent])
if @agent.save
redirect_to root_path
end
end
end
маршруты:
Outsidein::Application.routes.draw do
root :to => "home#index"
resources :agents
end