黄瓜,rspec,webrat如果在匹配上

时间:2011-07-27 05:17:18

标签: rspec cucumber webrat

我在我的黄瓜测试套件中有一个步骤定义,用于验证用户并尝试加速我的测试套件,我希望这一步检查用户是否已经过身份验证。也许这是一个坏主意,因为这意味着测试可能相互依赖......我不知道。但是我该怎么做呢?不幸的是,我不熟悉Ruby。

我希望我可以在DOM中渲染一个类,这样我就可以使用have_selector或其他东西来测试它。这也可能是一个坏主意......

Given /^I am authenticated as a "([^"]*)" user$/ do |role|
  #TODO: only do this if the user is not authenticated
  visit('/login')
  fill_in "name", :with => "something"
  fill_in "pass", :with => "password"
  click_button
  response_body.should contain("Log out")
end

1 个答案:

答案 0 :(得分:1)

你是对的,这是一个坏主意。但是如果你真的想要这样做,正确的方法是检查页面上的任何类型的文本,例如你可以有状态栏和登录用户名。这将是正确的方式,因为它模拟了人类的行为,例如 - 哦,这是我的用户名 - 这意味着我已经登录了:)

以下是您的步骤的样子:

 Given /^I am authenticated as a "([^"]*)" user$/ do |role|
   unless page.has_content?(username)
     visit('/login')
     fill_in "name", :with => "something"
     fill_in "pass", :with => "password"
     click_button
     response_body.should contain("Log out")
   end
 end