inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

RestTemplate 사용 ②

2개 이상의 마이크로 서비스가 결합됐을 때는 테스트코드는 어떻게 작성하는지 궁금합니다.

해결된 질문

681

정태성

작성한 질문수 3

0

UserService API 를 호출할때 RestTemplate 를 통해 OrderService 의 API 를 추가로 호출하는 방법을 보고 각 마이크로 서비스들이 엔티티 단위로 모듈화 되어 설계되어있다면 이런식으로 하는구나~ 배울 수 있었습니다.

그런데 이렇게 두개 이상의 마이크로서비스가 호출되는 API 는 테스트 코드를 어떻게 작성해야 하는지 감이 잡히지 않습니다. Web Layer(Controller) 를 테스트할때는 Service 객체를 Mocking 해서 해결할 수 있을것 같은데, Service layer(Service 클래스) 를 테스트할때는 어떻게 해야할까요?

springcloud JPA architecture testcode spring-boot spring-cloud Kafka msa

답변 1

0

Dowon Lee

안녕하세요, 이도원입니다.

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-"));
        });
    }
}

감사합니다.

kafka 업데이트 강의 듣고 시포요

0

115

2

강의 교안

0

106

2

마이크로서비스간 통신 시, 인증 처리

0

116

2

api gateway 에서 인증 처리

0

76

1

섹션 19 질문드립니다

0

85

2

강의 자료 업데이트

0

105

2

부하분산 강의 섹션

0

66

1

강의자료는 어디에서?

0

99

2

강의 자료는 어디서 다운 받을 수 있나요?

0

131

2

전체 사용자 조회시 오류

0

65

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

120

2

학습 방향

0

105

2

카프카 커넥터 사용 목적 문의

0

92

2

kafka 강의

0

118

2

서비스 디스커버리 종류

0

90

2

강의 자료에 대해서 궁금해요

0

126

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

97

2

Kafka Source Connect 버전 에러

0

95

2

소스커넥터는 사용안한 거 맞죠?

0

85

2

강의자료 업데이트 문의

0

99

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

64

1

강의 업데이트 계획이 궁금합니다.

0

121

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

168

2

어떤 것이 업데이트 된 건가요?

0

169

2