将现有变量传递给Ruby方法

时间:2014-10-27 18:29:35

标签: ruby cucumber watir-webdriver pageobjects page-object-gem

我正在尝试编写测试以确保现有用户无法注册(使用Cucumber,Watir-Webdriver和Page Objects)

我有以下代码:

  text_field(:email, :id => "user_email")
  text_field(:password, :id => "user_password")
  text_field(:password_confirmation, :id => "user_password_confirmation")
  checkbox(:terms_privacy, :id => "user_accepts_terms")
  button(:sign_up_button, :text => "Sign Up")

  def unique_username 
    @username = "qa_automation"+"#{rand(6 ** 6)}"+"@gmail.com"
  end  

  def sign_up
    unique_username
    self.email = @username
    self.password = USERS['PASSWORD']
    self.password_confirmation = USERS['PASSWORD']
    self.check_terms_privacy
    self.sign_up_button
    puts "username: #{@username}"
    @existing = @username
  end   

  def sign_up_with_existing_account
    puts "exisiting username: #{@existing}"
    self.email = @exisiting
    self.password = USERS['PASSWORD']
    self.password_confirmation = USERS['PASSWORD']
    self.check_terms_privacy
    self.sign_up_button
    puts "username: #{@existing}"
  end

但是@existing变量什么都没有返回。这两行什么都没有给我回复:

puts "exisiting username: #{@existing}"
self.email = @exisiting

所以我想我想弄清楚如何将@existing变量从'sign_up'方法传递给'sign_up_with_existing_account'方法?思考?

1 个答案:

答案 0 :(得分:1)

你不能也不应该这样做。如果运行一个测试可能会影响另一个测试的结果,测试将是一个混乱的混乱。您应该提前设置现有用户(使用例如Before),以便任何需要现有用户的测试都可以利用它。