RoR: неверное количество аргументов - PullRequest
4 голосов
/ 16 апреля 2011

Я пытаюсь вызвать метод в своем коде Rails 3, но получаю:

Ошибка / Ошибка: integra_sign_in false_user ArgumentError: неверное количество аргументов (0 для 1)

Вот код вызова (в помощнике RSpec):

before(:each) do
    wrong_user = Factory(:user, :email => "test@test.com", :password=>"hellohello", :password_confirmation => "hellohello")
    integration_sign_in wrong_user
end

Таким образом, он явно передает один аргумент.Если по какой-то причине аргумент является нулевым, то заставит ли это считать его параметром?

RELEVANT BACKSTORY: Для тестирования я просто переключился с вебрата на капибару.Как предложено в Railscast 257 , я также установил гемы launchy и database_cleaner.Когда я использовал webrat, приведенный выше код работал должным образом, но теперь (я полагаю, что он связан с database_cleaner) что-то идет не так.

Возможно, актуально: в моем spec_helper.rb я изменил на: config.use_transactional_fixtures = false (дажехотя у «истины» та же проблема)

Есть идеи?Спасибо.

Ответы [ 2 ]

4 голосов
/ 16 апреля 2011

Похоже, что ошибка аргумента не была на самом деле в этой функции (даже если вершина стека выглядит так, как она есть. Фактическая ошибка находится внутри функции integra_sign_in:

def integration_sign_in(user)
        visit signin_path
        fill_in :email,    :with => user.email
        fill_in :password, :with => user.password
        click_button
    end

ЭтоПохоже, что click_button нуждается в аргументе в capybara, но не в webrat.

0 голосов
/ 16 апреля 2011
integration_sign_in(wrong_user)
...