Considérez le test d'intégration suivant:
test "if there is no user in session, redirect to index and flash message" do open_session do |sess| post '/login', :email => users(:client).email, :password => 'rumpelstiltskin' sess[:user] = nil get '/user_page' assert_redirected_to index_path assert_equal "Your session has expired. Please log in again", flash[:notice] end end
4 Réponses :
Il suffit d'utiliser session [: utilisateur] code> sans
open_session code> bloc p>
Session [: utilisateur] = nil code> ne transmet pas la session mise à jour sur le contrôleur.
Cela fonctionne dans Rails 2, mais pas rails 3 (qui est la version utilisée dans la question).
Il s'avère qu'il ne semble pas possible de le faire. P>
dans les rails 3.2.3 Ce qui suit semble fonctionner pour moi: Je ne sais pas si cela fonctionnera pour vous, donc Goodluck! P> P>
Ce n'est pas ce que les tests d'intégration sont conçus pour. Vous ne devez pas modifier directement la session, mais vous devez frapper votre chemin / déconnexion. P>
Oui, mais la question concerne l'accès à la session code>.
@Borissttinicky - Oui, et j'ai dit n'accédez pas à la session, c'est Wronfleaded. J'ai écrit ceci il y a 2 ans, mais je pense que je suis toujours debout.
Est-ce que ce test d'unité d'unité ou d'intégration est-il? :)