TestNg中可以使用繼承,一些公關的操作可以放在父類中,比如打開瀏覽器等可以放在@BeforeClass中,關閉則放在@AfterClass中。
當子類實現了自己的@BeforeClass,@Test和@AfterClass,則運行子類時,對象直接調用自己的。如果有其中的任何一個子類沒有自己實現,父類進行了實現,則子類運行的時候會用自己的對象去調用父類的方法。
看下邊的例子:
1、子類和父類對這三個方法都進行了實現
父類代碼:
子類代碼:
結果:(子類調用自己實現的方法)
注:開始時,子類只運行了自己的三個方法,但是之後再運行就會運行父類的test方法,所以輸出了四行,到底應該是幾行?還不知道。。。
2、子類中有方法沒有實現,但是父類進行了實現,
父類的代碼和上邊的一樣不進行改變,但是將子類中的@BeforeClass註解的方法註釋掉,
運行結果:
beforeClass是子類調用的父類中的方法。驗證可以得到,AfterClass和Test也是一樣的。
故:一些公共操作,可以統一在父類中封裝實現,然後子類只實現各自不同的方法。