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
복사