我有一個類:我在哪裏實例化在構造函數中的webdriver實例如下java.lang.Exception的:測試類應該有且僅有一個公共的無參數的構造函數:
public class FunctionLibrary {
public WebDriver driver;
public FunctionLibrary(WebDriver driver)
{
driver = new FirefoxDriver();
this.driver=driver;
}
public WebDriver getDriver(){
return this.driver;
}
}
我訪問函數庫例如的webdriver在子類擴展超類:函數庫
public class Outlook extends FunctionLibrary{
public Outlook(WebDriver driver) {
super(driver);
}
@Before
public void testSetUp()
{
getDriver().navigate().to("https://google.com");
}
@After
public void closeTest()
{
getDriver().close();
}
@Test
public void openOutlookAndCountTheNumberOfMails()
{
System.out.println("executed @Test Annotation");
}
}
當我執行上面這段代碼的JUnit 我得到錯誤的
java.lang.Exception的:測試類應該有且僅有一個公共的無參數的構造函數
任何人都可以讓我在哪裏,我錯了
您沒有確切的一個公共零參數構造函數。你只有一個公共的單參數構造函數。你認爲構造函數參數'driver'來自哪裏? –
順便說一句:沒有必要爲此使用繼承。使用組合。 –
另外:你重寫傳遞給'FunctionLibrary'構造函數的'driver'的值。您目前不需要該參數;如果刪除參數(以及Outlook的構造函數的相應參數),問題將消失。 –