Skip to content

Latest commit

 

History

History
37 lines (26 loc) · 1.18 KB

04.refactoring_findById.md

File metadata and controls

37 lines (26 loc) · 1.18 KB

findById Refactoring

테스트코드

우선 TDD를 지향하기 때문에 통합 테스트부터 작성한다.

기존의 WebClientIT에 다음 어노테이션을 추가한다.

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)

@SpringBootTest모든 Spring Context를 가져와서 테스트를 하도록 하는 어노테이션이다.

따라서 Spring Boot Application은 테스트 실행 전 완전히 초기화될 것이다.

지금 당장은 테스트를 돌렸을 때 실패하는게 정상이다.

서비스

서비스는 간단한데, 다음과 같이 수정하면 된다.

@Cacheable(cacheNames = "beerCache", key = "#beerId", condition = "#showInventoryOnHand == false ")
@Override
public Mono<BeerDto> getById(Integer beerId, Boolean showInventoryOnHand) {
    if (showInventoryOnHand) {
        return beerRepository.findById(beerId)
                .map(beerMapper::beerToBeerDtoWithInventory);
    } else {
        return beerRepository.findById(beerId)
                .map(beerMapper::beerToBeerDto);
    }
}

beerMapper를 map안에 넣어줬을 뿐인데, 이제 Reactive Type을 반환해 주는 서비스가 된다.