レール統合テスト(ActionDispatch::IntegrationTest
)を書きたいと思っています。私はテストモデルのための認証と機械工にdeviseを使用しています。私は正常にサインインすることはできませんdevises gemを使ったRails統合テスト
をここで簡単な例である:ここで
class UserFlowsTest < ActionDispatch::IntegrationTest
setup do
User.make
end
test "sign in to the site"
# sign in
post_via_redirect 'users/sign_in', :email => '[email protected]', :password => 'qwerty'
p flash
p User.all
end
は、デバッグ出力である:ここで
Loaded suite test/integration/user_flows_test
Started
{:alert=>"Invalid email or password."}
[#<User id: 980190962, email: "", encrypted_password: "", password_salt: "", reset_password_token: nil, remember_token: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2010-11-27 16:44:10", updated_at: "2010-11-27 16:44:10">, #<User id: 980190963, email: "[email protected]", encrypted_password: "$2a$10$vYSpjIfAd.Irl6eFvhJL0uAwp4qniv5gVl4O.Hnw/BUR...", password_salt: "$2a$10$vYSpjIfAd.Irl6eFvhJL0u", reset_password_token: nil, remember_token: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2010-11-27 17:09:13", updated_at: "2010-11-27 17:09:13">]
"/unauthenticated"
F
は私blueprints.rbです:
require 'machinist/active_record'
require 'sham'
User.blueprint do
email {"[email protected]"}
password {"qwerty"}
end
私は最近、Rails Test Prescriptions(http://pragprog.com/titles/nrtest/rails-test-prescriptions)の読解を開始しました。かなり早い段階で、Noelは彼が認証のためにDeviseを使用すると述べています。私はgithub.comに彼のサンプルアプリケーション(https://github.com/noelrappin/huddle)を見て、彼がこの問題を解決しているかどうかを調べました。彼は統合テストを特徴としませんが、参考のためにここに掲載しています。 – hiwaylon
また、私のアプリケーションで認証にAuthLogic(https://github.com/binarylogic/authlogic)を使用するように切り替えました。私は以前にそれを使用していたし、Deviseよりはるかに良い。 – hiwaylon