TestNg中可以使用继承,一些公关的操作可以放在父类中,比如打开浏览器等可以放在@BeforeClass中,关闭则放在@AfterClass中。
当子类实现了自己的@BeforeClass,@Test和@AfterClass,则运行子类时,对象直接调用自己的。如果有其中的任何一个子类没有自己实现,父类进行了实现,则子类运行的时候会用自己的对象去调用父类的方法。
看下边的例子:
1、子类和父类对这三个方法都进行了实现
父类代码:
子类代码:
结果:(子类调用自己实现的方法)
注:开始时,子类只运行了自己的三个方法,但是之后再运行就会运行父类的test方法,所以输出了四行,到底应该是几行?还不知道。。。
2、子类中有方法没有实现,但是父类进行了实现,
父类的代码和上边的一样不进行改变,但是将子类中的@BeforeClass注解的方法注释掉,
运行结果:
beforeClass是子类调用的父类中的方法。验证可以得到,AfterClass和Test也是一样的。
故:一些公共操作,可以统一在父类中封装实现,然后子类只实现各自不同的方法。