【发布时间】:2017-02-23 09:33:12
【问题描述】:
我有一个方法 addNewUser 询问用户的用户名、电子邮件和密码。这些将存储在相应列的 excel 工作表中。请看下面的代码:
public class ExcelConfig {
public FileInputStream fis;
public FileOutputStream fos;
public XSSFWorkbook wb;
public XSSFSheet sh;
public XSSFRow row;
public XSSFCell cell;
int lastRow = 0;
ConfigReader cr = new ConfigReader();
public ExcelConfig(){
try {
fis = new FileInputStream(cr.getExcelPath());
wb = new XSSFWorkbook(fis);
}
catch (Exception e) {
System.out.println("Error at ExcelConfig " + e.getMessage());
}
}
public void addNewUser(String un, String em, String pw){
cell = row.createCell(0);
cell.setCellValue(un);
cell = row.createCell(1);
cell.setCellValue(em);
cell = row.createCell(2);
cell.setCellValue(pw);
}
}
现在,在其他类中,我调用了 addNewuser 方法。见下方代码
public class NextStepTest {
WebDriver driver;
ConfigReader cf;
ExcelConfig ec;
UserDetails ud;
LandingPage lp;
RegisterPage rp;
String username;
String email;
String password;
@BeforeTest
public void setUp(){
cf = new ConfigReader();
ec = new ExcelConfig();
ud = new UserDetails();
driver = cf.getChromeDriver();
driver.get(cf.getAppUrl());
}
@Test
public void register(){
username = cf.getUsernameFromProperty();
email = cf.getEmailFromProperty();
password = ud.getPassword();
try{
lp = new LandingPage(driver);
lp = PageFactory.initElements(driver, LandingPage.class);
lp.locateRegisterLink();
lp.clickRegisterLink();
rp = new RegisterPage(driver);
rp = PageFactory.initElements(driver, RegisterPage.class);
rp.locateUsernameField();
rp.registerAccount(username, email, password);
ec.getSheet(0);
ec.getNextRow();
ec.addNewUser(username, email, password); // here I call addNewUser method that now has username, email and password values
ec.closeFile();
rp.logout();
lp.locateLoginLink();
}
catch(Exception e){
System.out.println("Error under NextStepTest.java => " + e.getMessage());
}
}
现在,我想问的是,是否可以使 addNewUser 方法参数动态化?我知道这种情况取决于项目。在这种情况下,某些项目可能只需要将用户名、电子邮件和密码添加到 Excel 中。如果在未来的其他项目中,需要添加帐户类型怎么办?所以参数现在将变为 4。或者其他项目只需要电子邮件和密码。我应该每次都更新 addNewUser 方法参数吗?我仍然是这门语言的初学者。任何帮助都可以。谢谢大家!
【问题讨论】:
-
让你的方法接受一个可变参数:String ... args。请学一点Java。
-
@EgorZhuk Bit 是不够的.. :D
-
也许你的
addNewUser应该接受某种NewUserParameters对象。您可以使用给定上下文中所需的任何参数构建这样的对象,然后将其传递给您的方法。另见builder pattern -
您可以将参数作为用户对象传递,在其中您可以传递您想要的任何参数。如果您想添加更多属性,可以通过将它们添加到您的 User 类来实现。
标签: java methods parameters