Authlogicとパスワードとパスワードの確認の属性 - アクセスできない?

StackOverflow https://stackoverflow.com/questions/2612571

質問

イム私の成功したテストしようとすると、(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にマージする必要があります。あなたは工場定義の残りの部分とそのハッシュどこかの共通を保存する場合、それはスーパードライではありませんが、それはあなたのテストにそれをハードコーディングするよりも優れています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top