我正在尝试编写测试以确保现有用户无法注册(使用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'方法?思考?
答案 0 :(得分:1)
你不能也不应该这样做。如果运行一个测试可能会影响另一个测试的结果,测试将是一个混乱的混乱。您应该提前设置现有用户(使用例如Before
),以便任何需要现有用户的测试都可以利用它。