私は、ユーザ名、電子メール、パスワードを尋ねるメソッドaddNewUserを持っています。それらは対応する列のExcelシートに保存されます。以下のコードを参照してください。今JAVA:メソッドに新しいパラメータを追加する
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メソッドのパラメータを更新する必要がありますか?私はまだこの言語のスターターです。どんな助けもします。みんな、ありがとう!
メソッドにvararg:String ... argsを受け入れるようにしてください。そして、少しJavaを学んでください。 –
@EgorZhukビットでは十分ではありません。:D – nobalG
あなたの 'addNewUser'は何らかの種類の' NewUserParameters'オブジェクトを受け入れるべきでしょう。指定されたコンテキストで必要なパラメータを指定してこのようなオブジェクトを作成し、それをメソッドに渡すことができます。関連項目[builder pattern](https://en.wikipedia.org/wiki/Builder_pattern) – khelwood