我有一個Posts控制器,我剛剛安裝了Devise,以便快速輕鬆地添加一些身份驗證。在我安裝Devise之前,我爲Posts控制器的'新'動作創建了一些測試。安裝設計之後,我的測試失敗,直到我說的Rspec,設計,工廠女孩 - 如何通過Rspec控制器測試登錄工廠用戶?
config.include Devise::TestHelpers, :type => :controller
行我spec_helper.rb文件。
我也有我的PostsController行
before_filter :authenticate_user!, :except => [:show, :index]
。
現在,當我跑我的測試中,他們都通過這些除外2:
it "should be successful" do
get :new
response.should be_success
end
it "should have the right title" do
get :new
response.should have_selector('title', :content => @base_title + " | New post")
end
我用廠的姑娘爲好。該錯誤是由before_filter except參數引起的。我需要能夠通過工廠用戶在rspec中登錄用戶。如何在Rspec控制器測試中籤署Factory用戶?我如何定義工廠用戶?
我在factories.rb試過這樣:
Factory.define :user do |user|
user.name "Test User"
user.email "[email protected]"
user.password "password"
user.password_confirmation "password"
end
但後來我得到的錯誤:
NoMethodError:
undefined method `password_salt=' for #<User:0x00000103cac958>
任何幫助將非常感激。謝謝。
ahhhh完全忘記遷移測試數據庫...現在我得到:'失敗/錯誤:@user = create!(工廠(:用戶)) ActiveRecord :: RecordInvalid: 驗證失敗: t爲空,密碼不能爲空' – Jack
什麼代碼給出了這個錯誤? (錯誤信息應該有一個文件名和行號。) –
這是在我的帖子控制器測試之前(:每個)做 @user = create!(工廠(:用戶)) test_sign_in(@user) end' – Jack