2010-03-23 4 views
2

Je suis nouveau à Watir et j'ai un peu de mal à me connecter à mes tests. J'utilise authlogic comme méthode d'authentification de mon choix. Lorsqu'un utilisateur s'enregistre, il reçoit un e-mail avec un lien de confirmation. En cliquant sur ce lien confirme leur compte et ils peuvent ensuite se connecter.Comment gérer l'utilisateur "confirmation" avec Watir/Cucumber?

Le problème que je rencontre est comment puis-je confirmer l'utilisateur lors de l'utilisation de Watir?

J'ai jusqu'à présent:

Given /I sign up/ do 
    BROWSER.goto("http://localhost:3000/register") 
    BROWSER.text_field(:id, "user_email").set("[email protected]") 
    BROWSER.text_field(:id, "user_name").set("Foo Bar) 
    BROWSER.text_field(:id, "user_password").set("foo bar") 
    BROWSER.text_field(:id, "user_password_confirmation").set("foo bar") 
    BROWSER.button(:id, "user_submit").click 
end 

Given /I am logged in via Watir/ do 
    BROWSER.goto("http://localhost:3000/login") 
    BROWSER.text_field(:id, "user_session_email").set("[email protected]) 
    BROWSER.text_field(:id, "user_session_password").set("foo bar") 
    BROWSER.button(:id, "user_session_submit").click 
end 

Ce renseigne correctement les champs et l'utilisateur est enregistré. Maintenant j'essaye de confirmer l'utilisateur comme si:

Given /I am confirmed/ do 
    User.last.confirmed! 
end 

Malheureusement cela ne fonctionne pas. Qu'est-ce que je rate?

+0

Que fait 'User.last.confirmed!'? Je ne comprends pas quel est le problème. –

+0

'User.last.confirmed!' Trouve le dernier utilisateur et active l'indicateur: confirmed sur son compte. Quand: confirmed = true alors ils ont confirmé leur email et ils peuvent se connecter. –

+0

Je ne comprends toujours pas le problème: - Veuillez fournir le code Watir pour 'User.last.confirmed!' - S'il vous plaît développer "ne fonctionne pas". Qu'est-ce que vous attendiez? Qu'est-il arrivé à la place? –

Répondre

1

Je ne suis pas familier avec waitir mais j'imagine donné les étapes suivantes:

Given I have signed up 
When I confirm my account 
Then my account should be confirmed 

Vous pouvez soit garder une trace du lien que vous les attend à frapper et tester réellement frapper ce lien pour vérifier que la contrôleur définit alors l'utilisateur comme le confirme:

When /I confirm my account/do 
    BROWSER.goto("the_url_from_the_email") 
    # note that if you need to visit this link and click a button 
    # or something you will need to code that part as well 
end 

Ces étapes exerceraient le code d'inscription et la confirmation. Je pense que si vous le souhaitiez, vous pourriez soit les utiliser pour composer une étape «Étant donné que je suis connecté avec un compte confirmé» comme pré-condition pour d'autres tests, ou simplement utiliser cette même étape pour retourner un compte.

Vous n'êtes pas sûr de pouvoir répondre à votre question initiale, mais comme mentionné, vous n'avez pas vraiment dit ce qui ne va pas. Je suppose que User.last.confirmed! n'économise pas, ou ne sauvegarde pas le disque que vous attendez.

+1

Oui, le problème était dans mon code, pas avec Watir ... –

Questions connexes