보라코딩

WW19 본문

개발자가 되었다?

WW19

new 보라 2024. 5. 7. 19:45

 

 

240507

 

 

 

- 컨트롤러 테스트 방법이 2가지 있다 (@SpringbootTest로 전체 돌게 하는 방법과 @WebMvcTest로 컨트롤러 자체만 테스트 하는 방법)

- 컨트롤러 전체를 테스트하기 위해 아래와 같이 진행했다. DB는 H2로 테스트용으로 연결하고 카프카는 Mock처리했다.

 

 

SpringBoot Controller 단위테스트 & 통합테스트

컨트롤러 계층에 대한 단위, 통합 테스트! (포스트맨 스웨거 매번 일일이 쓰기 귀찮아서 시작함)

velog.io

 

 


@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles("test")
public class MailControllerTest {

    @Autowired
    private TestRestTemplate restTemplate;

    // 카프카 의존성 제외 목적
    @MockBean private ConcurrentKafkaListenerContainerFactory<String, JobStatusReq> kafkaListenerContainerFactory_JobStatus;
    @MockBean private ConcurrentKafkaListenerContainerFactory<String, MailDto> kafkaListenerContainerFactory_Mail;
    @MockBean private KafkaTemplate<String, Object> kafkaTemplate;
    @MockBean private JobStatusConsumer jobStatusConsumer;
    @MockBean private SlackConsumer slackConsumer;
    @MockBean private MailConsumer mailConsumer;

    @Test
    @DisplayName("defect 메일 전송 테스트")
    void sendDefectMailTest() {
        // given
        String toEmail = "메일주소";
        MailDto mailDto = MailDto.builder()
                .to(List.of(toEmail))
                .build();

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);

        HttpEntity<MailDto> requestEntity = new HttpEntity<>(mailDto, headers);

        // when
        ResponseEntity<Boolean> responseEntity = restTemplate.postForEntity("/api/v1/notification/killing-defect/mail", requestEntity, Boolean.class);

        // then
        assertThat(responseEntity.getStatusCode().is2xxSuccessful()).isTrue();
        assertThat(responseEntity.getBody()).isEqualTo(true);
    }
}

 

 

 

 

240509

 

- Jaeger : Uber에서 개발한 분산서비스 간 트랜잭션을 추적하는 오픈소스 소프트웨어이고 MSA 환경을 모니터링하는 프로젝트

- 테스트코드 수정

 

 

240510

 

 


- 리액트 중첩 라우팅 가능 (<Outlet /> 기능 있음!)
- mui.tsx로 theme 사용 가능

- 웹소켓 부분 수정(객체로 받고 보내게. 리액트랑 맞춤)
- 리액트 알림 기능(페이지네이션으로 일부 데이터 가져오고, 전체 데이터 갯수 가져오고, 알림 추가 기능_가장최근알람부터 보이게)

'개발자가 되었다?' 카테고리의 다른 글

WW21  (0) 2024.05.23
WW20  (0) 2024.05.13
WW18  (0) 2024.04.30
WW17  (0) 2024.04.24
WW16  (0) 2024.04.16