我有一个在我的超类中调用的方法,如下所示:

public class superClass {
  @Before
  void createDriver(){
    driverFactory = new FirefoxDriverFactory();
  }
  ...
}

但是,在专门从超类继承的测试套件中,我想要它,以便可以使用@BeforeClass批注而不是@Before批注运行测试。我不确定,但是是否可以覆盖@Before注释?我尝试了以下方法:
public class derivedClass extends superClass{
  @Override
  @BeforeClass
  void createDriver(){
    driverFactory = new FirefoxDriverFactory();
  }
}

但是我收到一条错误消息,指出createDriver()方法必须是静态的,并且必须删除@Override批注。是否可以覆盖注释而不是函数?我只是想知道。谢谢!

最佳答案

问题不在注释替代中。 JUnit要求@BeforeClass方法是静态的:

public class derivedClass extends superClass{

  @BeforeClass
  public static void beforeClass(){
   driverFactory = new FirefoxDriverFactory();
  }
}

关于java - 覆盖JUnit注释?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25416325/

10-10 09:23