Проблема странных маршрутов огурца - PullRequest
0 голосов
/ 16 декабря 2010

Я делаю простое приложение в рельсах, не используя огурец

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

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: мой метод создания

response_to: html

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

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

    respond_with @expense
  end

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

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

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

0 голосов
/ 16 декабря 2010

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

...