2011-01-28 5 views
0

Je suis nouveau sur Ruby et Cucumber, mais je l'utilise pour tester les fonctionnalités de haut niveau dans mon application web. J'ai surtout eu l'idée de comment cela fonctionne, mais je me bats un peu. J'utilise un fond dans le fichier de scénario à dire: Étant donné un utilisateur est connecté et ce sont les étapes:Connexion avec ruby ​​/ concombre

Given /^I am logged in as "([^"]*)" with password "([^"]*)"$/ do |user, password| 
    visit "http://www.website.com:82/login" 

    #Is there a 'logout'? 
    if (response_body contain('Login')) then 
    fill_in "email", :with => user 
    fill_in "password", :with => password 
    click_button "Login" 
    end 
    response_body.should contain("Your Accounts") 
end 

Je vais avoir du mal avec le cas. Je veux dire 'Si non connecté, connectez-vous' mais pas sûr d'utiliser l'objet webrat (si c'est ce que response_body est) ou autre chose!

Merci

Mike

Répondre

1

je serais probablement allé avec quelque chose comme (semble un peu effacé pour moi que jeter conditionnels en concombre):

Given /^I am logged in as "([^"]*)" with password "([^"]*)"$/ do |user, password| 
    visit destroy_session_path # make sure you are logged out 

    visit "http://www.website.com:82/login" 
    fill_in "email", :with => user 
    fill_in "password", :with => password 
    click_button "Login" 

    response_body.should contain("Your Accounts") 
end 
0

Alors, je l'ai changé à cela, et cela a fonctionné:

Given /^I am logged in as "([^"]*)" with password "([^"]*)"$/ do |user, password| 
    visit "http://www.website.com:82/login" 

    #Is there a 'logout'? 
    if (response_body.match('Login')) then 
    fill_in "email", :with => user 
    fill_in "password", :with => password 
    click_button "Login" 
    end 
    response_body.should contain("Your Accounts") 
end