ここで初心者の質問があります。私はレールのチュートリアルと一緒に従ってきたし、私は私のテストで足止めを打った。私は...factory_girl before_filterでrspecテストに失敗しました
を次のフィルタを実装する場合...私user_controller_spec.rbテストのすべての彼らが通過する前に「編集GET」と「PUT更新は」どこが失敗し始めるに関連します。ここでtrueを返したはず1ですが、falseが返さ:
describe "GET 'edit" do
before(:each) do
@user = Factory(:user)
test_sign_in(@user)
end
it "should be successful" do
get :edit, :id => @user
response.should be_success
end
end
そして、これは私のtest_sign_inコードはspec_helper.rbに
def test_sign_in(user)
controller.sign_in(user)
end
あるsign_in方法はApplicationControllerにしてincudedさSessionsHelper、である:
def sign_in(user)
cookies.permanent.signed[:remember_token] = [user.id, user.salt]
current_user = user
end
詳しい調査方法はわかりません。私の推測では、Rspecは '編集編集'できなかったので、見ることができる要求のログがなければならないが、テストでは偽を返すとしか伝えられないということだ。どこで見える?
アップデート:私はログに見つけたもの/ test.logは、次のように行ごとに「HTMLなどがUserControllerの#インデックスによる処理」はリダイレクトが続いているということです。
Processing by UsersController#index as HTML
[1m [35mUser Load (0.2ms) [0m SELECT "users".* FROM "users" WHERE "users"."id" IS NULL LIMIT 1
Redirected to http://test.host/signin
が、これはどういう意味そのすべてのテストインデックスアクションに続いてサインインへのリダイレクト?これが本当であれば、それはtest_sign_in方法(上記の)失敗し、この1つの通過のような他のテストなどのテストと一致思わ:
describe "GET 'index' for non-signed-in users" do
it "should deny access" do
get :index
response.should redirect_to(signin_path)
end
end
私は再びtest_sign_in方法のまわりで私の頭をラップしようとするつもりです。
私たちにsign_inメソッドを表示できますか? – Lichtamberg
うれしい。ありがとう、リッテンバーグ。 – eeeeeean
'log/test/log'の内容を調べてみてください – zetetic