문제

새로운 (또는 다른) 인스턴스입니다 TestCase 객체는 Junit 테스트 사례에서 각 테스트 방법을 실행하는 데 사용됩니까? 아니면 모든 테스트에 대해 하나의 인스턴스가 재사용됩니까?

public class MyTest extends TestCase {
  public void testSomething() { ... }
  public void testSomethingElse() { ... }
}

이 테스트를 실행하는 동안 몇 가지 인스턴스 MyTest 수업이 생성 되었습니까?

가능하면 동작을 확인할 수있는 문서 또는 소스 코드에 대한 링크를 제공하십시오.

도움이 되었습니까?

해결책

Junit Docs에서 귀하의 질문에 대한 명확한 답변을 찾을 수 없었지만 Anjanb의 의도는 각 테스트가 다른 테스트와 무관하므로 각 테스트에 대해 새로운 테스트 케이스 인스턴스를 작성할 수 있다는 것입니다.

비싼 테스트 설정이있는 경우 ( "비품") 테스트 클래스의 모든 테스트 사례에서 공유하려는 경우 @beforeclass 이 결과를 달성하기 위해 정적 방법에 대한 주석 : http://junit.sourceforge.net/javadoc_40/org/junit/beforeclass.html. 그러나 각 테스트마다 새 인스턴스가 여전히 생성 될 수 있지만 @beforeTest 메소드가 초기화 된 정적 데이터에는 영향을 미치지 않습니다.

다른 팁

예, 별도의 인스턴스가 생성됩니다.

이 테스트를 실행하는 동안 MyTest의 2 인스턴스가 생성됩니다.

다른 동작을 원한다면 하나의 옵션은 testng라는 유사한 도구를 사용하는 것입니다.http://testng.org/doc/).

각 테스트 실행마다 하나의 인스턴스가 있습니다. 노력하다

public class MyTest extends TestCase {
  public MyTest() { System.out.println("MyTest Constructor");
  public void setUp() { System.out.println("MyTest setUp");
  public void tearDown() { System.out.println("MyTest tearDown");
  public void testSomething() { System.out.println("MyTest testSomething");
  public void testSomethingElse() { System.out.println("MyTest testSomethingElse");
}

Sourcecode (최신 버전 포함 - 귀하와 내 예제는 Junit 3)가 켜져 있습니다. http://www.junit.org

생성자에서 데이터를 초기화하고 재직하는 것에 대해 우려하고 있기 때문에이를 묻는 경우 테스트 케이스 데이터를 초기화하는 규정 된 방법은 Setup () 및 TearDown ()을 독점적으로 경유합니다.

예, 확실히. 예를 들어 변수에 저장된 데이터는이 설계로 인해 테스트간에 액세스 할 수 없다는 것을 알았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top