5

Ce que j'accomplis est d'utiliser (compter sur) la méthode current_user tout en définissant les étapes du concombre. J'utilise Clearance dans mon projet. Tout d'abord j'ai essayé d'utiliser sign_in mais cela n'a pas fonctionné (je suppose que Cucumber World ne connaît pas les méthodes de Clearance ...). Comment puis-je faire reconnaître Cuckes current_user et sign_in/sign_out?Concombre et dégagement: current_user par étapes

Répondre

6

Vos fonctions de concombre devraient piloter votre application via l'interface utilisateur publique. 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 est pas disponible pour le navigateur, vous ne devriez pas l'utiliser dans vos spécifications.

Vous pourriez faire semblant dans vos étapes en stockant @current_user dans l'étape ci-dessus, puis en fournissant un lecteur d'attributs pour cela.

+0

Après 9 mois, je compris comment cucke c'est vrai. Maintenant, comprenez pourquoi votre réponse était correcte dans un jour. – gmile

+0

C'est quand même frustrant. Parce que 'current_user' est' nil' même du côté serveur, pas seulement du côté du navigateur. –

1

Je ne suis pas d'accord avec l'idée que chaque test d'acceptation (concombre ou autre) doit exercer la logique de connexion. Heureusement, si vous êtes d'accord, Clearance a ajouté un back door dans les tests qui vous permettent d'ignorer les étapes de connexion.

user = create(:user) 
visit posts_path(as: user) 

Maintenant, vous pouvez laisser vos fonctions liées à connexion au volant de l'interface de connexion comme un utilisateur et ignorer que des fonctionnalités qui ne sont pas directement liées à l'exploitation forestière dans.

+0

Merci beaucoup! – kwerle