Concombre et Clearance: current_user dans les étapes
-
26-09-2019 - |
Question
Ce que je quoi accomplir est d'utiliser (appuyer sur) méthode current_user
tout en définissant les étapes de concombre. J'utilise Clearance dans mon projet.
Tout d'abord j'ai essayé d'utiliser sign_in
mais il ne fonctionne pas (je suppose que le concombre monde ne sait pas sur les méthodes de dédouanement ...).
Alors, comment puis-je faire reconnaître Cuckes méthodes de current_user
et sign_in
/ sign_out
?
La solution
Vos caractéristiques de concombre devraient être au volant de votre application via l'interface utilisateur public. Quelque chose comme:
Given /^I am signed in as "([^\"]*)"%/ do |username|
visit 'sign_in'
fill_in 'Username', :with => username
click 'Sign In'
end
Puisque la méthode current_user
n'est pas disponible dans le navigateur, vous ne devriez pas l'utiliser dans votre spec.
Vous pourriez faux dans vos étapes en stockant @current_user
dans l'étape précédente, puis fournir un lecteur d'attribut pour elle.
Autres conseils
Je suis en désaccord avec l'idée que tous les tests d'acceptation (concombre ou autre) doit exercer la logique de connexion. Heureusement, si vous êtes d'accord, Clearance a ajouté une porte arrière dans les tests qui vous permet de sauter le signe dans les étapes.
user = create(:user)
visit posts_path(as: user)
Maintenant, vous pouvez laisser vos fonctions liées à connexion au volant de l'interface utilisateur en tant qu'utilisateur connexion et ignorer que serait pour les fonctions qui ne sont pas directement liées à l'exploitation forestière dans.