2개 이상의 마이크로 서비스가 결합됐을 때는 테스트코드는 어떻게 작성하는지 궁금합니다.
UserService API 를 호출할때 RestTemplate 를 통해 OrderService 의 API 를 추가로 호출하는 방법을 보고 각 마이크로 서비스들이 엔티티 단위로 모듈화 되어 설계되어있다면 이런식으로 하는구나~ 배울 수 있었습니다.
그런데 이렇게 두개 이상의 마이크로서비스가 호출되는 API 는 테스트 코드를 어떻게 작성해야 하는지 감이 잡히지 않습니다. Web Layer(Controller) 를 테스트할때는 Service 객체를 Mocking 해서 해결할 수 있을것 같은데, Service layer(Service 클래스) 를 테스트할때는 어떻게 해야할까요?
답변 1
0
안녕하세요, 이도원입니다.
Service Layer의 테스트 코드도 Controller Layer와 유사하게 작성하시면 됩니다. 아래 코드를 참고해서 작성해 보셔도 좋을 것 같습닏다. Spring Boot의 기본 컨텍스트와 분리된 테스트 환경으로 실행하실려면 별도의 @TestConfiguration 클래스를 추가하여 작업하실 수도 있습니다.
@RunWith(SpringRunner.class)
@SpringBootTest
class CatalogServiceImplTest {
@Autowired
private CatalogService catalogService;
@Test
void getAllCatalogs() {
Iterable<CatalogEntity> catalogEntities = catalogService.getAllCatalogs();
assertNotNull(catalogEntities);
catalogEntities.forEach(v -> {
assertTrue(v.getProductId().startsWith("CATALOG-"));
});
}
}감사합니다.
장애 격리 관련해서 궁금한 부분이 있어요
0
66
2
Inner class로 Config를 지정하는 이유
0
66
2
service-discovery 프로세스 가동 이유
0
88
2
rabbitmq에 configservice 연결에 대해 질문있습니다.
0
115
1
kafka 업데이트 강의 듣고 시포요
0
188
2
강의 교안
0
160
2
마이크로서비스간 통신 시, 인증 처리
0
173
2
api gateway 에서 인증 처리
0
115
1
섹션 19 질문드립니다
0
137
2
강의 자료 업데이트
0
152
2
부하분산 강의 섹션
0
104
1
강의자료는 어디에서?
0
141
2
강의 자료는 어디서 다운 받을 수 있나요?
0
184
2
전체 사용자 조회시 오류
0
96
1
혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??
0
181
2
학습 방향
0
154
2
카프카 커넥터 사용 목적 문의
0
141
2
kafka 강의
0
169
2
서비스 디스커버리 종류
0
132
2
강의 자료에 대해서 궁금해요
0
183
2
GlobalFilter, LoggingFilter가 동작하지 않습니다.
0
153
2
Kafka Source Connect 버전 에러
0
147
2
소스커넥터는 사용안한 거 맞죠?
0
137
2
강의자료 업데이트 문의
0
132
2





