본문 바로가기
반응형

@SpringBootTest2

JUnit 테스트에서 ApplicationRunner 실행하지 않도록 설정하기 ApplicationRunner는 스프링 애플리케이션을 시작할때, 어떠한 동작을 하기 위해 사용된다. 그런데 이러한 동작이 테스트 상황에서는 필요하지 않을 수 있다. 이럴 때, 어떻게 해당 로직을 제외하고 테스트를 진행할까? 가장 간단한 방법으로 @Profile 애노테이션을 사용하는 방법이 있다. 해당 애노테이션은 스프링 애플리케이션의 런타임 환경을 관리할 수 있도록 도와준다. 이제 방법을 알아보자. 아래와 같이 ApplicationRunner를 상속하는 클래스에 "test 라는 이름의 그룹을 활성화하지 않는다"라는 의미에 @Profile("!test") 애너테이션을 추가한다. @Profile("!test") @Component public class SomeApplicationRunner impleme.. 2022. 1. 9.
[JUnit] 스프링부트 + junit5 환경에서 MockMvc로 컨트롤러 테스트하기 Mock이란? 사전적 의미로 '테스트를 위해 만든 모형'을 의미하고, 테스트를 위해 실제 객체와 비슷한 모의 객체를 만드는 것을 모킹(Mocking), 모킹한 객체를 메모리에서 얻어내는 과정을 목업(Mock-up)이라 한다. Mock의 필요성 객체를 테스트하려면 테스트 대상 객체가 메모리에 있어야 한다. 하지만 생성하는 데 복잡한 절차가 필요하거나 많은 시간 이 소요되는 객체가(ex. 서비스레이어) 있을 수 있고, 웹 어플리케이션의 컨트롤러처럼 WAS나 다른 소프트웨어의 도움이 반드시 필요한 객체도 있을 수 있다. 이러한 복잡한 객체를 테스트하기 위해 실제 객체와 비슷한 가짜 객체를 만들어 테스트에 필요한 기능만 기지도록 모킹하면 테스트가 쉬워진다. 또한 복잡한 의존성을 가지고 있을 때, 모킹한 객체를 .. 2021. 4. 29.
반응형