-
[Spring] Multi-Module에서 Domain 모듈 테스트 실행하는 법Server/Spring 2022. 6. 23. 01:21728x90반응형
Multi Module Domain 모듈에서 테스트 코드 실행하는 법
위와 같이
main 클래스를 가지는api 모듈과domain모듈로 2개가 분리되어 있습니다.
api모듈에서domain모듈을 사용할 때 위와 같이 참조해서 사용하는데요. 즉,api 모듈에서 Domain 모듈을 import해서 사용한다고 생각하면 됩니다.Domain 모듈에서 테스트 코드를 실행해보자.
그러면 이제
Domain모듈에서통합 테스트코드를 간단하게 작성하여 실행해보면 위와 같은 아리송한 에러 메세지를 볼 수 있습니다. 에러가 발생하는 이유를 생각해보면Domain모듈에서통합 테스트코드를 작성한다면@SpringBootTest어노테이션을 사용해서 진행할 것인데요.@SpringBootTest어노테이션은Spring Context와 모든Spring Bean들을 띄워서 테스트 환경을 만들게 되는데요.
도메인 모듈에는
SpringBootApplication어노테이션이 존재하지 않기 떄문에, 도메인 모듈은Spring Context를 띄울 수 없어서 에러가 발생하는 것입니다.SpringBootApplicationConfigurationContext
즉,
Domain모듈에서 통합 테스트를 돌리기 위해서는 위의 두 가지 중에 하나를 추가해서 통합 테스트할 떄Spring Context가 뜰 수 있게 하면 통합 테스트를 실행할 수 있습니다.SpringBootApplication
@SpringBootApplication public class TestConfiguration { }위와 같이
TestConfiguration과 같이@SpringBootApplication어노테이션을 가지고 있는 클래스를 하나 생성해놓으면 도메인 모듈 통합 테스트를 실행할 때 스프링 컨텍스트를 띄울 수 있게 됩니다.ContextConfiguration위처럼
@SpringBootApplication을 사용하지 않는다면ContextConfiguration어노테이션을 사용해서 통합 테스트를 위한 스프링 컨텍스트를 띄워서 사용하는 방법입니다.@ContextConfiguration defines class-level metadata that is used to determine how to load and configure an ApplicationContext for integration tests.@ContextConfiguration(classes = { JasyptConfig.class }) @SpringBootTest public class JasyptConfigTest {}예를들면 위와 같이 사용할 수 있습니다.
Reference
반응형'Server > Spring' 카테고리의 다른 글
[Spring] 멀티 모듈에서 모듈별 yml 파일 관리하는 법 (1) 2022.10.04 [Spring] Security WebSecurityConfigurerAdapter Deprecated 해결하기 (0) 2022.06.29 [JPA] @OneToOne 관계에서 N + 1 발생하는 이유가 무엇일까? (4) 2022.06.04 [Spring] Spring Security, React를 사용하면서 CORS 허용하는 방법 (0) 2021.12.23 [Spring] AWS EC2에서 Spring Access log, logger log 저장하는 법 (0) 2021.12.09