ROR 3.1 + Cucumber => Выдача маршрутов - PullRequest
2 голосов
/ 01 августа 2011

Буду очень признателен, если вы поможете со следующей проблемой / актом неопытности.Я обыскивал обычных подозреваемых (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

1 Ответ

1 голос
/ 10 ноября 2011

В вашем действии создания, когда вы успешно сохраняете модель, она перенаправляет на путь root_path, а не на agent_path ..., поэтому вам нужно будет изменить этот путь в действии или ваше ожидание в функциях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...