Атрибуты Authlogic и пароля и подтверждения пароля - недоступны? - PullRequest
1 голос
/ 10 апреля 2010

Я пытаюсь проверить, успешно ли я создаю нового пользователя после входа в систему (используя authlogic).Я добавил пару новых полей для пользователя, поэтому просто хочу убедиться, что пользователь сохранен правильно.

Проблема заключается в том, что, несмотря на создание действительной фабрики пользователей, всякий раз, когда я пытаюсь получить ее атрибуты для публикации вметод создания, пароль и подтверждение пароля пропускаются.Я предполагаю, что это метод безопасности, который 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

1 Ответ

2 голосов
/ 10 апреля 2010

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

...