Spring Boot에서, Servlet Filter에 대한 테스트 코드 작성을 한 내용은 많지 않아서, 간단히 내 코드를 기록. JwtAuthenticationFilter @Slf4j public class JwtAuthenticationFilter extends OncePerRequestFilter { private final JwtTokenProvider jwtTokenProvider; private final ObjectMapper objectMapper; private static final String AUTHORIZATION_HEADER = "Authorization"; private static final String BEARER_PREFIX = "Bearer "; private final..
오류 내용을 간단히 요약하면, Controller와 Service 코드는 정상적으로 작성되었으며, WebMvcTest에서 내에서 Mockito.when().thenReturn() 을 통해 정상적으로 Mocking을 했음에도 불구하고 테스트 코드의 결과가 내가 예상한 대로 나오지 않는 상황이다. 오류 상황 RoomController @PostMapping(value = "/room", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity
Spring Boot, Junit5에서 MongoDB 테스트 환경을 세팅하는 과정에서 발생한 오류 기록 정리 1. @SpringBootTest, @DataMongoTest 어노테이션을 동시에 사용할 수 없다. 참고링크: How to use these @DataMongoTest and @SpringBootTest together in integration test @AutoConfigureDataMongo, @SpringBootTest 어노테이션을 같이 사용 2. 실행 시에 test/resources/application.yml에 mongodb config 정보를 입력해야 한다. 입력하지 않으면 org.springframework. dao. DataAccessResourceFailureException: ..
@AuthControllerTest 코드를 실행하는 중, 아래와 같은 오류 메시지가 발생하였다. 1. 소스 코드 로직은 다음과 같다. 먼저 컨트롤러로 nickname 중복 검증 요청이 오면, 공백과 문자열을 검증한 뒤, authService.check ... 메소드로 닉네임을 전달해서 db를 조회한 뒤, 결과를 int로 받아온다. Test 부분에서는 db에 저장되어 있지 않은 정상적인 닉네임 형식이 들어온 경우, 즉, HttpStatus.OK.value() 의 경우에 대해 검증하고자 하였다. AuthController @GetMapping(value = "/check-nickname") public ResponseEntity
작성하는 내용은 저의 주관적인 의견이 반영된 내용입니다. 1. Service class에서 return 값을 DTO 객체 대신 특정 값으로 보내기(int 등) 기존에 코드를 작성했던 방식 Service 코드 중 일부 /* 채팅방 생성 */ public CreateRoomSuccessDto createRoom(RoomDto roomDto) { // Dto -> Entity Room room = roomDto.toRoom(); // save db try { room.setRoomId(roomReqDto.getRoomId()); // Assign a value to the ID field manually roomRepository.save(room); } catch (Exception e) { throw ne..
오류상황 Spring Boot 테스트 코드를 작성한 뒤, 전체 테스트 코드를 통합 테스트 할 때 아래와 같은 오류 메시지가 발생하였다. TokenRepositoryTest 해당 class를 단독으로 test할 때는 오류가 발생하지 않았으나, 전체 클래스를 통합 테스트 할 시에는 위 사진과 같은 오류가 발생함. 내가 생각한 오류 원인 TokenRepositoryTest class 이전에 AuthServiceTest.class 에서 이미 refresh_token table을 생성하고 데이터를 넣은 뒤 Rollback시킨다(@Transactional). 하지만 table에 적용된 Auto Increment 값은 이미 1에서 2로 증가한 상태라, TokenRepositoryTest에서 row 2개를 insert..