보라코딩
WW19 본문
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 사용 가능
- 웹소켓 부분 수정(객체로 받고 보내게. 리액트랑 맞춤)
- 리액트 알림 기능(페이지네이션으로 일부 데이터 가져오고, 전체 데이터 갯수 가져오고, 알림 추가 기능_가장최근알람부터 보이게)