我有一個適用於大多數測試的定義爲@BeforeMethod
的所有測試的基類(我正在測試管理用戶界面,所以我希望通常以管理員身份登錄,然後在測試之前以管理員身份登錄) - 但有時我想跳過這個方法,或者在擴展我的基類的類中使用不同的方法來覆蓋它。覆蓋TestNG中的@BeforeMethod
public class AbstractWebDriverTest {
@BeforeMethod
public void preparePage() {
driver.get("somePage");
signInAsAdmin();
}
}
public class TestConfigWithOtherUser extends AbstractWebDriverTest {
//now I want to skip before method and sign as a different user instead
@Test
public void someTestWithDifferentUser() { }
}
所以我想我可以解決這個使用羣體莫名其妙,但有什麼辦法如何重寫init方法?
首先選擇看起來不錯 - 但我想,以避免在每次測試是不同的,這就是爲什麼方法重載將是很好的,因爲你將有一個方法與全班初始設置代碼重複。 –
這實際上取決於你的設置:如果你有100個案例,其中5個是針對不同用戶的,那麼請按照我的例子。如果對於不同的用戶有20個,我會嘗試進行一些測試分組 –
在我看來,爲了避免污染使用冗餘代碼的「默認」測試,我認爲應該進行分組。 .. –