Authlogicとパスワードとパスワードの確認の属性 - アクセスできない?
-
25-09-2019 - |
質問
イム私の成功したテストしようとすると、(authlogicを使用して)ログイン後、新規ユーザーを作成します。これだけのユーザーが適切に保存されていることを確認するには、ユーザーに新しいフィールドの追加カップルをIVEます。
問題は、私は方法、パスワードとパスワードの確認が省略されているの作成に投稿し、その属性をつかむしようとするたびに、有効なユーザーファクトリを作成するにもかかわらず、です。私は、これはバックグラウンドで実行することauthlogicセキュリティ方式ですpresuem。検証では、この結果は失敗し、テストが失敗します。
イム不思議ではどのように私はラウンドこの問題を得るのですか?私はちょうど手で属性が、それdoesntのは非常に乾燥したように見えると入力することができます。
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
解決
あなたは間違いなくUserオブジェクトからパスワードやpassword_confirmationを読み取ることができません。あなたは:password
ハッシュへ:password_confirmation
と@user.attributes
にマージする必要があります。あなたは工場定義の残りの部分とそのハッシュどこかの共通を保存する場合、それはスーパードライではありませんが、それはあなたのテストにそれをハードコーディングするよりも優れています。
所属していません StackOverflow