【发布时间】:2015-12-21 14:12:29
【问题描述】:
我有一个类:函数库,我在构造函数中实例化 webdriver 实例,如下所示
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会从哪里来? -
顺便说一句:没有必要为此使用继承。使用组合。
-
另外:你重写了
driver的值,传递给FunctionLibrary的构造函数。您目前不需要该参数;如果您删除参数(以及 Outlook 构造函数的相应参数),您的问题就会消失。 -
谢谢安迪,它帮助了我
-
为什么没有答案标记为正确?
标签: java selenium-webdriver junit constructor expectations