Develop/Spring

[Spring] JUnit5 생명 주기 정리

코딩의성지 2021. 10. 8. 23:25

Spring으로 프로젝트를 진행하다보면 단위 코드를 테스트 해야할 일이 생긴다.

이때 대부분 JUnit 기반의 테스트를 작성하게 된다.

 

실제 JUnit을 이용해 테스트하는 방법은 아래의 링크를 참고하면 좋을듯하다.

https://devkingdom.tistory.com/114

 

[Spring] JUnit을 활용한 스프링 메서드 모듈 테스트하기

하이 ...!! 여러분 !! 스프링은 TDD (Test Driven Development) 기반의 개발을 할 수 있도록 스프링 프로젝트를 만들때 알아서 테스트 환경을 세팅해준다. 우리는 거기다 코드를 작성해서 테스트를 하면된

devkingdom.tistory.com

 

다만 작성한 글에는 @Test로만 테스트 코드를 작성했는데, 실제로 테스트가 실행될 때 우리는 이 생명주기가 어떻게되는지를 정확하게 알 필요가 있다. 

 

JUnit 5에서는 네가지 Test LifeCycle 어노테이션을 제공한다.

Test LifeCycle은 아래와 같은 실행 순서를 가진다.

 

@BeforeAll

JUnit4의 @BeforeClass 를 대신하여 사용하는 어노테이션이다.

모든 테스트가 실행되기 전에 @BeforeAll이 명시된 메서드가 실행된다.

테스트가 실행되기전에 한번만 실행이 되며, 반드시 static 메서드 여야한다.

 

@BeforeEach

JUnit4의 @Before를 대신하여 사용하는 어노테이션이다.

해당 어노테이션이 있는 메서드는 @Test 어노테이션이 있는 테스트 메서드 이전에 실행된다.

해당 메서드는 static이 될수 없다.

 

@AfterAll

JUnit4의 @AfterClass를 대신하여 사용하는 어노테이션이다.

모든 테스트가 종료 된 후에 @AfterAll 이 명시된 메서드가 실행된다.

테스트가 종료 된 후에 한번만 실행되고, 반드시 static 메서드 여야한다.

 

@AfterEach

JUnit4의 @After를 대신하여 사용하는 어노테이션이다.

해당 어노테이션이 있는 메서드는 @Test 어노테이션이 있는 테스트 메서드 실행 이후에 실행된다.

해당 메서드는 static이 될 수 없다.

 

 

 

반응형