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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top