2010-04-10 5 views
1

Im пытается проверить мой успешно создает нового пользователя после входа в систему (используя authlogic). Ive добавил несколько новых полей пользователю, поэтому просто хочу убедиться, что пользователь сохранен правильно.Атрибуты аутентификации и пароля и пароля - недоступны?

Проблема заключается в том, что, несмотря на создание действующей фабрики пользователей, всякий раз, когда я пытаюсь захватить ее атрибуты для публикации в метод создания, пароль и подтверждение пароля опускаются. I presuem это метод безопасности, который authlogic выполняет в фоновом режиме. Это приводит к сбоям проверки и провалу теста.

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

context "on POST to :create" do 
      context "on posting a valid user" do 
       setup do 
        @user = Factory.build(:user) 
        post :create, :user => @user.attributes 
       end 
       should "be valid" do 
        assert @user.valid? 
       end 
       should_redirect_to("users sentences index page") { sentences_path() } 
       should "add user to the db" do 
        assert User.find_by_username(@user.username) 
       end 
      end 


##User factory 
Factory.define :user do |f| 
    f.username {Factory.next(:username) } 
    f.email { Factory.next(:email)} 
    f.password_confirmation "password" 
    f.password "password" 
    f.native_language {|nl| nl.association(:language)} 
    f.second_language {|nl| nl.association(:language)} 
end 

ответ

2

Вы определенно не можете прочитать пароль и пароль_подтверждения от объекта User. Вам необходимо объединить в :password и :password_confirmation в хэш-код @user.attributes. Если вы храните этот хэш где-то общий с остальными вашими заводскими определениями, он не супер сух, но лучше, чем жестко кодировать его в свой тест.

+0

спасибо, что подтвердили это для меня. плохо просто объединить их с хэш-атрибутами. Благодарю. – robodisco

Смежные вопросы