In der devise Dokumentation geben sie Tipps, wie Sie den Zugriff auf current_user haben kann, wenn ein Controller testen:Wie auf current_user in einem rspec-Feature-Test zugreifen (entwickeln)?
aber was ist, wenn ein Feature-Test zu tun? Ich versuche, eine create-Methode eines meiner Controller zu testen, und in diesem Controller wird die current_user-Variable verwendet.
Das Problem besteht darin, dass das in devise vorgeschlagene Makro die @ request-Variable verwendet und für eine Feature-Spezifikation null ist. Was ist eine Problemumgehung?
EDIT:
Das ist, was ich bisher für meine aktuelle Spezifikation haben:
feature 'As a user I manage the orders of the system' do
scenario 'User is logged in ad an admin' do
user = create(:user)
order = create(:order, user: user)
visit orders_path
#Expectations
end
end
Das Problem ist, dass in meinem OrdersController
habe ich einen current_user.orders
Anruf, und da current_user
ist nicht definiert, es werde mich zu /users/sign_in
umleiten.
I definiert haben dies unter /spec/features/manage_orders.rb
Ich mag, dass –
verwendet https://github.com/railsware/rack_session_access für sich auch etwas haben, sehen http://blog.pixarea.com/2013/01/ make-rspec-feature-specs-easy-with-devise und http://stackoverflow.com/questions/5865555/how-to-do-integration-testing-with-rspec-and-devise-cancan. –
Fügen Sie vielleicht den Testcode ein, den Sie schreiben möchten? Sie können einfach so tun, als wäre "current_user" da. Ich denke, das wird Ihnen sehr dabei helfen, Ihre Absichten zu klären. –