所以首先,我使用內置的Rails自帶的集成測試套件,而不是黃瓜,webrat等。我想master在切換到另一個測試之前套房。設計在軌道集成測試中不能正常工作
使用設計1.4.2和導軌3.1。
無論如何,我正在編寫一個模擬用戶註冊帳戶,確認帳戶,重新登錄和填寫表單的集成測試。這是事情似乎南下的地方。從我可以告訴,設計有問題與我的控制器創建操作,並因爲這些問題與設計,current_user是零。這裏是一個片段:
require 'test_helper'
class SignupTest < ActionDispatch::IntegrationTest
test "new signup and application" do
go_to_signup_page
create_new_account :user => {:email => "[email protected]", :user_name => "dfdfdf",
:password => "dfdfdfdfdfdf", :password_confirmation => "dfdfdfdfdfdf"}
confirm_account_creation
go_to_signin_page
log_in
go_to_form
submit_form
end
.....等試驗....
def go_to_form
get "/applications/new"
assert_response :success
assert_template "applications/new"
assert_equal 'Please fill out this application', flash[:notice]
end
def submit_form
post "/applications", :application => {.....}
assert_response :redirect
assert_equal 'Application Successful ', flash[:notice]
end
在我的控制,我有
before_filter :authenticate_user!
從我確定,「DEF go_to_form「通過了。但是,當我嘗試在「def submit_form」中進行POST時,它告訴我需要「請先登錄或註冊」,當您尚未登錄時嘗試訪問某個功能時出現典型的設計錯誤。 我認爲這個問題也導致current_user爲零。
如果我刪除了before_filter,我要發佈,但current_user仍然爲空。
我無法解釋這裏發生了什麼。除CREATE操作之外,所有其他操作都以高亮度傳遞。