2009-10-13 2 views
2

내 테스트를 위해 기본 클래스 MyTestBase을 사용하여 몇 가지 기본 준비를 수행하는 setup() 메서드를 정의합니다.TestNg, 주석 "beforeTestMethod"및 재정의

public class MyTestBase { 
    @Configuration(beforeTestMethod=true) 
    protected void setup() { 
     // do base preparations 
    } 
} 

이제 자신 만의 준비를해야하는 특정 테스트 클래스가 생겼습니다. 이를 구현하는 방법에는 여러 가지가 있습니다.

@Override

public class MySpecialTestBase extends MyTestBase { 
    @Override 
    protected void setup() { 
     super.setup(); 
     // do additional preparations 
    } 
} 

... 또는 별도의 설치 방법을 사용할 수 있습니다.

public class MySpecialTestBase extends MyTestBase { 
    @Configuration(beforeTestMethod=true) 
    protected void setupSpecial() { 
     // do additional preparations 
    } 
} 

이것을 구현하는 방법이 있습니까?

답변

5

@Configuration 주석을 사용하는 것이 좋습니다. @Overridesuper이 더 취약합니다. super.setup()에 전화하거나 틀린 곳에서 전화하는 것을 잊을 수 있습니다. 한편, @Configuration과 별도의 메소드를 사용하면 필요에 따라 하위 설정 방법에 더 적절한 이름을 지정할 수 있으며 TestNG (부모와 자식)가 보장하는 설정 순서를 얻습니다.

두 더 많은 포인트 :

  1. 내가 실수로 오버라이드 (override)를 금지하기 위해 부모 설정 final을 할 것입니다.
  2. 주석을 사용하고 싶습니다. TestNG 5.0부터 사용할 수 있습니다. 물론 이전 버전에서는 @Configuration을 사용해야했습니다.
+0

답변 해 주셔서 감사합니다. – tangens