전체 보기
🍀

MultipartForm 파일 없을 때 테스트 코드, Spring Security 적용 후 통합 테스트 코드(간단히 수정)

작성일자
2023/10/05
태그
DIARY_DEVELOP
프로젝트
FIS
책 종류
1 more property

Multipartfile 테스트코드

빈 파일 보내는 걸 생각하고 null로 보냈더니 테스트 코드에서 npe가 떴다.
빈 파일은 아래 코드처럼 빈 파일 객체 만들어줘서 테스트를 하자
private MultipartFile emptyMultipartFile; @BeforeEach public void setUp() { // 테스트 메서드가 실행되기 전에 빈 MultipartFile 객체를 생성 emptyMultipartFile = new MockMultipartFile("emptyFile", new byte[0]); }
YAML
복사

Spring Security 적용 후 통합 테스트 코드

@WithMockUser 를 사용하면 아주 간단하게 적용해줄 수 있다.
@Test @WithMockUser(username = "test", roles = {"ADMIN"}) // 이거 한 줄만 추가해주면 된다. @DisplayName("전체 센터 검색하기") void searchCenter() throws Exception { mockMvc.perform(RestDocumentationRequestBuilders .get("/center/search") .params(new LinkedMultiValueMap<>( Map.of( "c_name", List.of("아이러빗어린이집"), "c_address", List.of("가산디지털2로 108 1207호"), "c_ph", List.of("01012345678"), "participation", List.of("EMPTY"), "sort", List.of("participation"), "order", List.of("ASC") ) )) .accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andDo( document("center-search", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()), requestParameters( parameterWithName("c_name").description("센터 이름"), parameterWithName("c_address").description("센터 주소"), parameterWithName("c_ph").description("센터 전화번호"), parameterWithName("participation").description("센터 참여 여부"), parameterWithName("sort").description("정렬 기준"), parameterWithName("order").description("정렬 방식") ), responseFields( fieldWithPath("data[].center_id").type(JsonFieldType.NUMBER).description("센터 아이디"), fieldWithPath("data[].c_name").type(JsonFieldType.STRING).description("센터 이름"), fieldWithPath("data[].c_address").type(JsonFieldType.STRING).description("센터 주소"), fieldWithPath("data[].c_ph").type(JsonFieldType.STRING).description("센터 전화번호"), fieldWithPath("data[].status").type(JsonFieldType.STRING).description("센터 참여 여부"), fieldWithPath("data[].c_people").type(JsonFieldType.STRING).description("센터 현원 수") )) ); }
Java
복사
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
패스워드는 대문자, 소문자, 숫자, 특수문자를 포함한 암호 길이 8자 이상으로 설정해야 연결이 제대로 된다