테스트 코드/JUnit

@BeforeClass, @AfterClass ,@Before,@After 순서 알아보기

Wings of Freedom 2021. 3. 30. 18:43

@BeforeClass, @AfterClass ,@Before,@After 순서 알아보기

Junit에 

@BeforeClass, @AfterClass ,@Before,@After 어노테이션이 있습니다.

이전 이후..? 뭐지 어떻게 호출되는건지 알아보도록 하겠습니다.

 

 

Example

 

class BeforeAfterTest {

    @Before
    @Throws(Exception::class)
    fun setUp() {
        println("@Before")
    }

    @After
    @Throws(Exception::class)
    fun tearDown() {
        println("@After")
    }

    @Test
    @Throws(Exception::class)
    fun testCase1() {
        println("testCase1")
    }

    @Test
    @Throws(Exception::class)
    fun testCase2() {
        println("testCase2")
    }

    companion object {
        @BeforeClass
        @JvmStatic
        @Throws(Exception::class)
        fun setUpBeforeClass() {
            println("@BeforeClass")
        }

        @AfterClass
        @JvmStatic
        @Throws(Exception::class)
        fun tearDownAfterClass() {
            println("@AfterClass")
        }
    }
}
//result
@BeforeClass
@Before
testCase1
@After
@Before
testCase2
@After
@AfterClass

 

  • @BeforeClass : 테스트 클래스 테스트 시작시 1번만호출 
  • @Before : 테스트 케이스 시작전 각각 호출
  • @After : 테스트 케이스 완료시 각각 호출
  • @AfterClass : 테스트 클래스 모든 테스트 완료시 1번 호출

Junit 5에서는 헷갈림 방지를 위해 아래와 같이 변경되었습니다.

@BeforeClass -> @BeforeAll

@Before -> @BeforeEach

@After -> @AfterEach

@AfterClass -> @AfterAll