情境:
有一种方法可以为学生生成密码。所有学生必须使用此密码。我们需要验证所有学生类型都可以使用此密码访问测试文件。
testClass extends BaseClass{
testStudent1(){
driver.findElement(By.xpath(xpathExpression)).sendKeys(login.generatePassword());
}
testStudent2(){
driver.findElement(By.xpath(xpathExpression)).sendKeys(login.generatePassword());
}
}
问题是这些Student方法都获得了新密码。如何生成一次密码并在整个项目中使用它?类似于变量的东西。
请原谅我这样的新手问题。
答案 0 :(得分:2)
您可以使用静态字段
testClass extends BaseClass{
private static String pw = null;
testStudent1(){
if (pw == null)
pw = login.generatePassword();
driver.findElement(By.xpath(xpathExpression)).sendKeys(pw);
}
如果在多线程环境中使用
,则可能必须考虑线程安全性答案 1 :(得分:2)
有很多解决方案。
鉴于上述示例,我会在您的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
方法。
答案 2 :(得分:0)
您可以使用静态变量来存储仅生成一次的密码,
你可以,
public static String pswd = login.generatePassword();
并使用此pswd
作为函数参数。