3 недели опыта работы с Java здесь. У меня есть эти два класса - AppTest и AppTest2 и у меня есть один и тот же код в обоих из них:Java: Как я могу реорганизовать метод для класса, а затем использовать его параметры в других классах?
Вот мой код:
public class Apptest/AppTest2 {
public WebDriver driver;
public WebDriverWait wait;
@DataProvider(name = "dataProvider")
public Object[][] setUp() throws Exception {
File firefoxPath = new File(System.getProperty("lmportal.deploy.firefox.path", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"));
FirefoxBinary ffox = new FirefoxBinary(firefoxPath);
ffox.setEnvironmentProperty("DISPLAY", ":20");
driver = new FirefoxDriver(ffox, null);
wait = new WebDriverWait(driver, timeoutInSeconds);
Object[][] data = new Object[1][2];
data[0][0] = driver;
data[0][1] = wait;
return data;
}
@Parameters({ "driver", "wait" })
@Test(dataProvider = "dataProvider")
public void twoUsersSignUp(WebDriver driver, WebDriverWait wait) throws InterruptedException{
//test here
}
}
Как я могу взять этот код из (нАлАдкА()), сделать его класс, а затем передать эти переменные к следующему ничтожной «twoUsersSignUp»
EDIT: Я не ищу для автоматического решения, я просто хочу, чтобы реорганизовать это, так что я не имею тот же код в обоих классах
EDIT2: После того, как я реализовал принятые Решение Wer, я теперь есть проблема с пропусканием переменного «драйвера» к следующему методу в первом классе:
@AfterClass
public void quit() {
driver.quit();
}
Как сделать это?
EDIT3: Это решение @AfterClass:
@SuppressWarnings("deprecation")
@Configuration
@AfterClass
public static void quit (@Optional WebDriver driver) {
driver.quit();
}
EDIT4: на самом деле EDIT3 не работает, он просто скрывает ошибки от Eclipse. Я до сих пор не могу получить доступ к «драйверу» :(
EDIT5: Я решил, что мне не нужно иметь его в аннотации AfterClass TestNG, так что я удалил все ненужные вещи, и теперь он выглядит следующим образом:
public static void quit (WebDriver driver) {
driver.quit();
}
и переменная была объявлена так:
public static WebDriver driver;
, но до сих пор он не работает
EDIT6:. исправил на самом деле вызова метода в тестовом коде Перед Я не должен был его называть, потому что testng.xml вызвал его, но после того, как я удалил аннотацию @AfterTest, она была исключена!
Что вы подразумеваете под «преобразованием метода в класс»? Это две разные вещи; Какова ваша мотивация здесь? –
Возьмите что? Что вам нужно пройти? Вы не можете преобразовать класс в метод. – ClaireG
Ваш вопрос очень неясен. Что вы подразумеваете под словом «Как я могу взять это как класс»? – Filip