회원 가입 컨트롤러를 테스트 도중..
@Test
@DisplayName("회원 가입 성공")
void signupSuccess() throws Exception {
// given
SignupDto.Request signupDto = SignupDto.Request.builder()
.username("username")
.password("password")
.name("testName")
.address("testAddress")
.mobile("010-1234-5678")
.mail("test@mail.com")
.role("USER")
.build();
// when
mockMvc.perform(post("/signup")
.contentType(MediaType.APPLICATION_JSON)
.content("{"
+ "\"username\":\"" + signupDto.getUsername() + "\","
+ "\"password\":\"" + signupDto.getPassword() + "\","
+ "\"name\":\"" + signupDto.getName() + "\","
+ "\"address\":\"" + signupDto.getAddress() + "\","
+ "\"mobile\":\"" + signupDto.getMobile() + "\","
+ "\"mail\":\"" + signupDto.getMail() + "\","
+ "\"role\":\"" + signupDto.getRole() + "\""
+ "}"))
.andExpect(status().isOk());
}
- content에 값을 넣어주는 게 조금 지저분해 보였다.
- Jackson 라이브러리의 ObjectMapper를 이용해보게 됐다.
- ObjectMapper는 JSON과 Java 객체 간의 변환을 담당해준다.
- 이후 ObjectMapper의 writeValueAsString 메서드를 이용해 Java 객체를 JSON 문자열로 직렬화(serialize) 한다. (역질렬화(deserialize는 readValue())
- Jackson 라이브러리의 ObjectMapper를 이용해보게 됐다.
@Test
@DisplayName("회원 가입 성공")
void signupSuccess() throws Exception {
// given
SignupDto.Request signupDto = SignupDto.Request.builder()
.username("username")
.password("password")
.name("testName")
.address("testAddress")
.mobile("010-1234-5678")
.mail("test@mail.com")
.role("USER")
.build();
ObjectMapper objectMapper = new ObjectMapper();
String jsonContent = objectMapper.writeValueAsString(signupDto);
// when
mockMvc.perform(post("/signup")
.contentType(MediaType.APPLICATION_JSON)
.content(jsonContent))
.andExpect(status().isOk());
}
}
'Java > Spring' 카테고리의 다른 글
[에러] SLF4J: Class path contains multiple SLF4J bindings (0) | 2024.03.18 |
---|---|
Test 이모저모 - @withMockUser (0) | 2024.03.06 |
Test 이모저모 - when 의 필요성 (0) | 2024.03.05 |
[Spring Security] JwtAuthenticationFilter 구현 (0) | 2024.02.29 |
Authentication 인증 객체에 대하여 (0) | 2024.02.29 |