我users_controller.rb如何爲users_controller存根| authlogic,rspec2,Rails3中,factory_girl
# GET /users/1/edit
def edit
@user = current_user
#@user = User.find(params[:id])
end
我甜蜜的尋找users_controller_spec.rb(注意我的所有註釋掉的嘗試)
describe "Authenticated examples" do
before(:each) do
activate_authlogic
UserSession.create Factory.build(:valid_user)
end
describe "GET edit" do
it "assigns the requested user as @user" do
@user = Factory.create(:valid_user)
assigns(:user).should be(Factory.build(:valid_user))
end
end
user.rb - 工廠
Factory.define :valid_user, :class => User do |u|
u.username "Trippy"
u.password "password"
u.password_confirmation "password"
u.email "[email protected]"
u.single_access_token "k3cFzLIQnZ4MHRmJvJzg"
end
基本上我只是試圖讓這個RSpec測試以最合適的方式通過。
我需要能夠很簡單地說,mock_user
是current_user
。
該測試通過,如果我在users_controller.rb使用@user = User.find(params[:id])
謝謝!
我在我的spec_helper中包含'Authlogic :: TestCase'。我之前的(:each)中的activate_authlogic像上面那樣。我**正嘗試使用Factory來製作用戶。從我上面的一個例子來看,它非常接近你的。我現在猜測,我的問題來自語法問題。哈!祝我好運;) – Trip 2010-09-08 13:41:14
我更新了我上面的場景。 ;) – Trip 2010-09-08 14:21:07
看着更新後的代碼,你是否遺漏了'get'?另外,看起來像Factory.build(:valid_user)'的結果在每次調用之後都會有所不同,除非在工廠工作時有某種單例模式。 – zetetic 2010-09-08 15:50:02