Bu soruna, getsatisfaction.com adresinde listelenmiş, ancak geçici çözümü anlamadım. fabrika uygun kullanıcının düzenleme sayfasını erişen uygunsuz kullanıcıyı taklit etmek için uygunsuz bir kullanıcı ve uygun kullanıcıyı hem yaratmak olmadığı için Bölüm 10.13, iki birim sınaması, açıklama olmadan başarısız olur
Bu kod users_controller_spec.rb içinde nedense başarısız ve belki de açıklanmıştır: (10,13)describe "for signed-in users" do
before(:each) do
wrong_user = Factory(:user, :email => "[email protected]")
test_sign_in(wrong_user)
end
it "should require matching users for 'edit'" do
get :edit, :id => @user
response.should redirect_to(root_path)
end
it "should require matching users for 'update'" do
put :update, :id => @user, :user => {}
response.should redirect_to(root_path)
end
Ben aşağıdaki hatalar RSpec çalışır duruma:
Failures:
1) UsersController authentication of edit/update pages for signed-in users should require matching users for 'edit'
Failure/Error: get :edit, :id => @user
No route matches {:id=>nil, :controller=>"users", :action=>"edit"}
# ./spec/controllers/users_controller_spec.rb:223:in `block (4 levels) in <top (required)>'
2) UsersController authentication of edit/update pages for signed-in users should require matching users for 'update'
Failure/Error: put :update, :id => @user, :user => {}
No route matches {:id=>nil, :user=>{}, :controller=>"users", :action=>"update"}
# ./spec/controllers/users_controller_spec.rb:228:in `block (4 levels) in <top (required)>'
Sanırım bunu düzeltmeyi başardım. Kullanıcılar test bloğunun "oturum açmış kullanıcılar için" "düzenleme/güncelleme sayfalarının kimlik doğrulaması" bölümü altına yerleştirilmemem hatamdı. Bu testler için kullanıcı_controller_spec.rb – ajcbowhill
@ useruser oluşturulmadı. Cevabın için teşekkürler! – ajcbowhill