使用方法的输出作为最终变量



方案:

有一种方法可以为学生生成密码。所有学生都必须使用此密码。我们需要验证所有学生类型都可以使用此密码访问测试文件。

testClass extends BaseClass{
testStudent1(){
  driver.findElement(By.xpath(xpathExpression)).sendKeys(login.generatePassword());
}
testStudent2(){
  driver.findElement(By.xpath(xpathExpression)).sendKeys(login.generatePassword());
}
}

问题是这两种学生方法都在获取新密码。如何生成一个密码并在整个项目中使用全部?类似类变量。

请问我这样的新手问题。

您可以使用静态字段

testClass extends BaseClass{
private static String pw = null;
testStudent1(){
   if (pw == null) 
          pw = login.generatePassword();
   driver.findElement(By.xpath(xpathExpression)).sendKeys(pw);
}

如果在多线程环境中使用

,则可能必须考虑线程安全

有很多解决方案。

给出了上面的示例,我会将public static final String添加到您的BaseClass

class BaseClass {
    public static final String studentPassword = new Login().generatePassword();
}

在这种情况下,您的测试看起来像这样:

testClass extends BaseClass{
testStudent1(){
  driver.findElement(By.xpath(xpathExpression)).sendKeys(studentPassword);
}
testStudent2(){
  driver.findElement(By.xpath(xpathExpression)).sendKeys(studentPassword);
}
}

我也将使generatePassword()成为static方法。

您可以使用静态变量存储仅生成的密码,

你可以做

public static String pswd = login.generatePassword();

并将此pswd用作函数参数。

最新更新