我在這裏有一個新手問題。我一直在跟隨rails教程,並且在測試中遇到了一些障礙。當我執行下面的過濾器...factory_girl rspec測試失敗與before_filter
...我所有的涉及到「GET編輯」和「PUT更新」開始user_controller_spec.rb測試失敗,他們才能通過。這裏是一個應該已返回真實的,但返回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
這是spec_helper.rb我test_sign_in代碼
def test_sign_in(user)
controller.sign_in(user)
end
的sign_in方法是SessionsHelper,這是在ApplicationController中incuded:
def sign_in(user)
cookies.permanent.signed[:remember_token] = [user.id, user.salt]
current_user = user
end
我不知道如何進一步調查。我的猜測是,由於Rspec無法'獲取編輯',我必須記錄該請求的日誌,但是測試只會告訴我它返回了錯誤。我在哪裏可以看下?
更新:我在日誌中找到/ test.log中是每一行「由UsersController#指數作爲HTML處理」之後是一個重定向如下:
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方法(上)不和其他測試像這樣的傳球是一致的:
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 2011-12-19 20:17:45
很高興。謝謝你,Lichtamberg。 – eeeeeean 2011-12-19 21:19:06
嘗試查看'log/test/log'的內容 – zetetic 2011-12-20 04:35:54