카테고리 없음

Spring Test MockMvc의 한글 깨짐

광82 2023. 7. 13. 14:01
반응형

Spring 또는 Spring boot에서 JUNIT을 사용하여 API(Controller) 테스트 코드를 작성할 때, 다음과 같이 MockMvc를 사용합니다.

 

@SpringBootTest
@AutoConfigureMockMvc
@Transactional
class SubjectsControllerTest {
  @Autowired
  MockMvc mvc;
  
  @Test
  public void 상품검색() throws Exception {
    String keyword = "스포츠";

    MvcResult result = this.mockMvc
      .perform(get("/api/search/" + keyword))
      .andExpect(status().isOk())
      .andReturn();
    }
  }
}

 

이때, 검색 조건 및 검색 결과의 한글이 모두 깨져서 보이지 않는 경우가 있습니다.

이때 CharacterEncodingFilter를 사용하여 쉽게 해결할 수 있습니다.

  @BeforeEach
  public void setup() {
    this.mvc = MockMvcBuilders.webAppContextSetup(ctx)
        .addFilters(new CharacterEncodingFilter("UTF-8", true))  // 필터 추가
        .alwaysDo(print())
        .build();
  }
 
반응형