문제점org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException 문제 발생 코드 @DeleteMapping("/{commentNumber}/deleteComment") public ApiResponse deleteComment(@PathVariable int commentNumber) { commentService.deleteComment(commentNumber); return ApiResponse.of(HttpStatus.NO_CONTENT, null); } 무결성 제약 조건 위배 발생했다는 에러가 떴다.댓글 엔티티에 boardNumber 즉 fk로 엮여 있다.댓글을 삭제하려고 하니 부모인 board 엔티티에서 자식인 comment가 없어지려고 하자. 에러가..
에러일기
Rest docs와 PathVariable 문제점 발견 문제점 java.lang.IllegalArgumentException: urlTemplate not found. If you are using MockMvc did you use RestDocumentationRequestBuilders to build the request? 문제가 발생한 코드 @DisplayName("상세 게시글 페이지에서 좋아요(△, ▽) 버튼을 누를 수 있다.") @WithAuthUser(email = "test123@naver.com", role = "ROLE_USER") @Test void putFavorite() throws Exception { final int boardNumber = 1; mockMvc.perform..
문제점 @Import(HttpEncodingAutoConfiguration.class) @ExtendWith(RestDocumentationExtension.class) public abstract class RestDocsSupport { protected MockMvc mockMvc; protected ObjectMapper objectMapper = new ObjectMapper(); @BeforeEach void setUp(RestDocumentationContextProvider provider) { this.mockMvc = MockMvcBuilders.standaloneSetup(initController()) .addFilters(new CharacterEncodingFilter("UTF-..
문제점 @DisplayName("게시글에 필요한 정보를 입력 후 등록을 하면 게시글이 저장된다.") @Test void createBoard() throws Exception { // given String title = "게시글제목"; String content = "게시글내용"; PostCreateRequestDto request = createPostRequest(title, content); // when & then mockMvc.perform(post("/api/v1/board") .content(objectMapper.writeValueAsString(request)) .contentType(MediaType.APPLICATION_JSON)) .andDo(print()) .andExpect(..
문제점 컨트롤러를 @WebMvcTest로 진행하여 필요한 빈들만 등록한 후 나머지 연관관계가 있는 빈들은 Mock 가짜로 등록해주기로 하였다. @WebMvcTest(controllers = { AuthController.class }) public abstract class ControllerTestSupport { @Autowired protected MockMvc mockMvc; @Autowired protected ObjectMapper objectMapper; @MockBean protected AuthService authService; } Controller 테스트에 필요한 빈들을 추상 클래스로 분리하여 지정해두었다. class AuthControllerTest extends Controlle..
문제 발생 (1) java.lang.NullPointerException: Cannot invoke "org.springframework.test.web.servlet.ResultActions.andDo(org.springframework.test.web.servlet.ResultHandler)" because the return value of "org.springframework.test.web.servlet.MockMvc.perform(org.springframework.test.web.servlet.RequestBuilder)" is null 문제의 코드 @WebMvcTest(controllers = OrderController.class) class OrderControllerTest { @Mo..