2010-12-16 3 views
0

Я делаю простое приложение в рельсах без использования огурцаОгурцов странных маршруты проблема

У меня есть этот пользовательский рассказ:

Scenario: add new expense 
    Given I am on the expenses page 
    When I follow "new expense" 
    Then I am on new expense page 
    Then I fill in "expense_title" with "french fries" 
    Then I fill in "expense_category" with "Lunch" 
    Then I fill in "expense_amount" with "2300" 
    And I press "expense_submit" 
    And I should be on the "french fries" expense page 
    Then I should see "The expense was successfully created" 

В режиме разработки я следовал за одни и те же шаги, и я получил ожидаемые результаты , но работает это с огурцом я получаю сообщение об ошибке

(::) failed steps (::) 

expected: "/expenses/2", 
    got: "/expenses" (using ==) (RSpec::Expectations::ExpectationNotMetError) 
./features/step_definitions/web_steps.rb:260:in `/^(?:|I)should be on (.+)$/' 
features/expenses.feature:14:in `And I should be on the "french fries" expense page' 

Я уже установить правильный путь в path.rb

when /the "(.+)" expense page/ 
     "/expenses/#{Expense.find_by_title($1).id}" 

из-за этого ожидаемый путь, соответствующий результату предыдущего кода, это правильно, но полученного результата нет.

Когда я добавил «Тогда покажите мне страницу» после подачи кнопки я получаю простую страницу с этим сообщением:

You are being redirected. 

Но, как я уже говорил, это не произойдет в режиме разработки, а также Я проверил, что запись успешно сохраняется в базе данных, поэтому я не знаю, где может быть проблема. Может ли кто-нибудь мне помочь?

Привет

PS: Мой метод создания

respond_to: HTML

def create 
    @expense = Expense.new(params[:expense]) 

    if @expense.save 
     flash[:notice] = "The expense was successfully created" 
    end 

    respond_with @expense 
    end 

ответ

1

Проблема была проблема совместимости Webrat с рельсов 3,

Это была та же проблема this, и есть решение, простой патч к Webrat драгоценный камень

0

Он смотрит на меня, как ваш paths.rb настроен правильно, но это ваше create действие, который перенаправляет обратно expenses_path вместо ,

+0

нет это не так, все работает отлично в режиме разработки, поскольку он, судя по всему, был, но не с огурцом, это моя проблема. – forellana 2010-12-16 01:33:50

+0

@forellana: это расход, который вы используете в функции Cucumber? – 2010-12-16 08:10:05