back end/java

Spring Test MockMvc의 한글 깨짐 처리

노루아부지 2023. 5. 24. 13:06
반응형

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();
  }
728x90
반응형
loading