Whiteship's Note

JUnit 4.8 카테고리 기능

모하니?/Coding : 2010.05.25 16:00


http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html

public interface FastTests { /* category marker */ }
public interface SlowTests { /* category marker */ }

public class A {
    @Test
    public void a() {
        fail();
    }

    @Category(SlowTests.class)
    @Test
    public void b() {
    }
}

@Category({SlowTests.class, FastTests.class})
public class B {
    @Test
    public void c() {

    }
}

@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
public class SlowTestSuite {
  // Will run A.b and B.c, but not A.a
}

@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@ExcludeCategory(FastTests.class)
@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
public class SlowTestSuite {
  // Will run A.b, but not A.a or B.c
}

1. A.a() 테스트: 아무것도 설정안함.
2. A.b() 테스트: SlowTest.class 카테고리로 지정함(애노테이션 참조)
3. B.c() 테스트: SlowTest.class과 FastTest.class 카테고리에 모두 해당함.( c() 메소드를 가지고 있는 클래스에 붙인 애노테이션 참조)

첫번째 SlowTestSuite 실행할 때는 SlowTest.class 카테고리를 포함시킴. 테스트 대상으로 A.class와 B.class에 있는 모든 테스트를 지정해줌.
=> 따라서 A와 B 클래스에 들어있는 테스트 1, 2, 3이 모두 테스트 대상이 되지만 그 중에서 SlowTest 카테고리에 해당하는 1번(A.b())과 3번(B.c())만 실행됨.

두번째 SlowTestSuite 실행할 때는 SlowTest.class 카테고리를 포함시키고 FastTests.class는 제외시킴.
=> 따라서 위 결과와 비슷하지만 FastTests.class 카테고리에도 들어갈 수 있는 3번이 제외됨.

벤댕이 그림을 그려서 보면 좋겠지만 귀찮아서..패스
저작자 표시
신고
top

TAG



: 1 : ··· : 96 : 97 : 98 : 99 : 100 : 101 : 102 : 103 : 104 : ··· : 2639 :





티스토리 툴바