Rails Tutorial - Ch.8 - ArgumentError в тестах RSpec со строкой 'before' - PullRequest
0 голосов
/ 25 февраля 2012

Я следую Руководству по Rails Майкла Хартла (Michael Hartl) и получаю неожиданную ошибку / неудачный тест в разделе 8.2.6 Выход из системы - http://ruby.railstutorial.org/chapters/sign-in-sign-out?version=3.2#sec:signing_out

Код, который я использовал для моих тестов RSpecне удается найти в листинге 8.28.Следующий код:

before { click_link "Sign out", method: :delete }

выдает следующую ошибку:

ArgumentError: wrong number of arguments (2 for 1)
# (eval):2:in 'click_link'
# ./spec/requests/authentication_pages_spec.rb:35:in 'block (5 levels) in <top (required)>

Я подтвердил, что мой код в точности такой, как показано в примере из учебника Хартла, но я до сих порполучить неудачный тест.Мысли?

1 Ответ

0 голосов
/ 25 февраля 2012

Метод капибара click_link принимает только один параметр , который является именем ссылки, которую вы хотите активировать. Поэтому я думаю, что код должен быть только:

before { click_link "Sign Out" }

Оставшаяся часть кода выглядит как конец действия sign_out в представлении w:

<%= link_to "Sign out", signout_path, method: => :delete %>

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

Я бы просто удалил "method:: delete" и посмотрел, что у тебя получилось.

...