2011-01-28 10 views
0

Я новичок в Ruby и Cucumber, но я использую его для тестирования функциональности высокого уровня в своем веб-приложении. У меня в основном есть идея, как это работает, но я борюсь с одним битом. Я использую фон в файл сценария, чтобы сказать: Дано пользователь вошел в систему, и это шаги:Вход с рубином/огурцом

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 

У меня возникли проблемы с если. Я хочу сказать: «Если вы не вошли в систему, войдите в систему», но не уверены, следует ли использовать объект webrat (если это то, что является response_body) или что-то еще!

Благодаря

Майк

ответ

1

я бы, наверное, пошел что-то вроде (кажется, немного очищается для меня, чем бросать условные обозначения в огурцы):

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

Итак, я изменил его на это, и она работала:

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