如何在两个测试类之间共享变量?

时间:2013-01-11 18:55:33

标签: java selenium

public class Reg {
   @BeforeClass
   public void setUp() throws Exception
   {    
     // Generate a unique email every time 
     String email= UniqueEmail.now()+"@test.com";
     .....
    }
   @Test()
   public void Reg1() throws Exception 
   {
      // Registration Test
   }
}

public class Login{
   @BeforeClass
   public void setUp() throws Exception
   {    
     //How to parse in the email variable from Class Reg?
    }
   @Test()
   public void Login() throws Exception 
   {
      // Use the email generated from class A
      selenium.type("EmailID", email)
   }
}

班级Reg将始终在班级Login之前执行。如何在执行课程email后存储Reg变量,以便可以在课程Login中使用?

4 个答案:

答案 0 :(得分:1)

创建一个包含所有全局变量的类,并使用该类扩展所有类(包含全局变量)

答案 1 :(得分:1)

这是我在两个或多个类之间共享变量的最佳解决方案,也是最简单的一个。

在所有内容的顶部创建一个类并在其中声明您的变量:

class global {
  static String email;
}

然后,您可以在主方法,公共类中的其他公共静态方法和独立类之间共享'email' - 将其用作'global.email' - 实际上在所有内容之间。

答案 2 :(得分:0)

据我理解的例子,每个类代表一个测试用例。测试用例之间不应该有任何依赖关系,因为测试框架不能保证执行顺序。你不应该这样做。

不幸的是,你的问题很模糊,所以我不明白你想要完成什么,因此无法指出更好的方法来实现你的目标。

答案 3 :(得分:-1)

如何将它放在Reg类的静态成员中,然后在Login中访问它?

或者您应该认为您的测试尽可能独立,这意味着在第二次测试中您应该注册一个新用户,然后测试登录过程。