J'ai commencé à écrire des tests fonctionnels pour l'application mes rails aujourd'hui. J'utilise le plugin d'authentification RESTful. Je suis tombé sur un couple de choses confus, j'espère que quelqu'un peut clarifier pour moi.Tests fonctionnels Ruby on Rails avec le plugin d'authentification RESTful
1) J'ai écrit une fonction de connexion rapide car la plupart des fonctions de mon application rails nécessitent une authentification.
def login_as(user)
@request.session[:user_id] = user ? user.id : nil
end
Le problème que je vois avec cette fonction, c'est qu'il fausse fondamentalement l'authentification. Devrais-je être inquiet à ce sujet? Peut-être que c'est correct d'aller dans cette voie tant que je teste la vraie méthode d'authentification quelque part. Ou peut-être que c'est une pratique terrible.
2) La deuxième chose qui prête à confusion est que dans certains endroits de mes tests fonctionnels, j'ai besoin du processus d'authentification complet. Lorsqu'un utilisateur est activé, la méthode do_activate crée des objets initiaux pour l'utilisateur. Il est analogue à la création d'un objet bloc-notes vierge et d'un objet plume pour une application étudiante, si cela a du sens.
Donc, afin de tester correctement mon application, j'ai besoin que l'utilisateur atteigne cet état d'activation afin que ces objets soient créés. J'utilise actuellement Factory Girl pour créer l'utilisateur, puis j'appelle la fonction login_as ci-dessus pour fausser l'authentification.
Je suppose qu'une autre option consisterait à ignorer la séquence d'authentification complète et à créer simplement les objets vides avec Factory Girl. Je pourrais tester la bonne authentification ailleurs.
Qu'en pensez-vous? Si je devais passer par la séquence appropriée, pourquoi le code ci-dessous n'appelle-t-il pas la fonction do_activate?
user = Factory.create(:user)
user.active = 1
user.save
Merci!
[Voici une question similaire que j'ai posée] (http://stackoverflow.com/questions/64827/rails-restful-authentication-rsp-how-to-test-new-models-that-require-authen) et un tas de liens que j'ai tirés ensemble. – srboisvert