0
我有一段時間試圖讓對象正確實例化傳遞給其他方法。這裏是我的代碼:如何實例化對象並將其傳遞給使用testng的方法
public class CreateAndDeleteCollector {
private static WebDriver driver = new FirefoxDriver();
private LoginPage login;
private AdminRtcpCollectorPage rtcp;
private AdminFunctions admin;
//DesiredCapabilities capability = DesiredCapabilities.firefox();
//String hubUrl = "http://localhost:4444/wd/hub";
//WebDriver d = new RemoteWebDriver(new URL(hubUrl), capability);
@BeforeMethod
public void setup() throws Exception {
LoginPage login = new LoginPage(driver);
AdminRtcpCollectorPage rtcp = new AdminRtcpCollectorPage(driver);
AdminFunctions admin = new AdminFunctions();
}
@Test
public void newCollector() throws Exception {
login.login("192.168.1.100", "admin", "admin");
rtcp.goToRtcpCollectorPage();
rtcp.newRtcpCollector("test-1", "test", "test", "192.168.1.100");
}
@Test(dependsOnMethods = { "newCollector" })
public void deleteCollector() throws Exception {
admin.initialize(driver);
rtcp.goToRtcpCollectorPage();
admin.delete("test-1");
}
@AfterTest
public void logoutAndClose() {
Util.logout(driver);
driver.close();
}
}
我,只要我得到的第一個測試方法是錯誤與一個NullPointerException運行這個用TestNG因爲登錄,RTCP和管理。我確信我誤解了@BeforeMethod註釋應該做什麼。
我可以把所有的聲明和實例化在一個setup方法之外,這很好用,但是把它們放在方法中的原因是因爲當我在RemoteWebDriver中註釋時,我得到一個「Default constructor can not處理異常類型...「錯誤。
有沒有人有任何建議?
我認爲使用TestNG的工廠和dataprovider可能是一個答案,但我不知道如何將它應用於我的情況。
嗯,這是很簡單的:)謝謝 –