Установка пути в огурце - PullRequest
       4

Установка пути в огурце

3 голосов
/ 01 ноября 2011

Я настраиваю сценарий огурца для настройки действительного пользователя, где мой последний шаг:

"Тогда я должен перейти на страницу пользователя шоу"

который я определяю как:

Then /I should be taken to the show user page/ do
  @user = User.last
  if current_path.respond_to? :should
    current_path.should == path_to(user_path(@user))
  else
    assert_equal path_to(user_path(@user)), current_path
  end
  visit(user_path(@user))
end

После получения ошибки «Не удается найти сопоставление из« / users / 49 »для пути». Я попытался определить путь как:

when /^users\/(.+)$/ do |user|
  user_path(user.to_i)
end

Но это приводит к ошибке:

синтаксическая ошибка, непредвиденное ключевое слово_до, ожидаемое ключевое слово_ут или ',' или ';' или '\ n' когда /^landlords/(.+)$/ do | landlord |

Я относительно новичок в рельсах и веб-разработке и совершенно новичок в огурцах и TDD. Также новый для регулярных выражений. Любая помощь будет оценена!

Спасибо

John

Ответы [ 2 ]

3 голосов
/ 01 ноября 2011

Похоже, user_path(@user) дает вам нужный путь, поэтому перенос в path_to вызывает ошибку, когда он пытается сделать то же самое.

Я думаю, что избавление от вызова path_to может помочь:

current_path.should == user_path(@user)
0 голосов
/ 01 ноября 2011

Причина ошибки «неожиданное ключевое слово_до» заключается в том, что у вас есть , когда вместо , когда , т.е. Ruby интерпретирует его как оператор case -style,Но, как отмечает Джон М, вам это все равно не нужно.

...