[Spring#36] Spring 개인과제 : Test / 알고리즘 : 가장 가까운 같은 글자

김한준 Hanjun Kim·2023년 11월 30일
0

내일배움캠프

목록 보기
37/70

알고리즘

깃허브 링크 :
https://github.com/wkdehf217/codingTest/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/42576.%E2%80%85%EC%99%84%EC%A3%BC%ED%95%98%EC%A7%80%E2%80%85%EB%AA%BB%ED%95%9C%E2%80%85%EC%84%A0%EC%88%98

해당 문제는 쉽게 풀었다고 생각했지만 효율성 문제에서 막혔고, 코드카타 시간에 팀원들의 도움을 받아 문자열 비교하는 부분을 equals로 바꾸니 해결되었다.

  • 비교해서 존재한다면 완주자 목록에서 빼고
  • 없다면 미완주자를 리턴한다.

개인과제

처음에 어떤 방향으로 과제를 해결할지 의문이였다.
Entity / Dto 테스트를 어떻게 구현해야 할지 고민하다가
해당 엔티티의 유효성 검사만 하고,
이외의 기능들은 Controller나 Service에서 검증하면 될 것 같아서 넘어갔다.

  • Controller Test, Mock
    • 컨트롤러에서 테스트 코드를 작성하다가 Return값을 통해 데이터를 검증하고 싶어졌다.
      • MvcResult 를 사용해서 마지막에 .andReturn()으로 리턴값을 저장한다
    Map<String, Object> responseMap =
//                new ObjectMapper().readValue(mvcResult.getResponse().getContentAsString(), Map.class);
//        // 검증
//        Assertions.assertEquals(responseMap.get("method"), "GET"); // response method 데이터 검증
  • 위와 같이 구현하려 했으나..
    생각해보니 Controller에서는 확인할 수 없다고 생각했다.
    실제 객체를 가져다 쓰는게 아니라 Mock을 통해 가져오니 가짜 객체를 리턴하는것 같았다.
    만약 테스트를 하려면 직접 값을 넣어주거나 실제 Repository에서 반환받아 테스트를 해야 한다고 생각했다.
  • 내일 Service 구현하면서 테스트 해 볼 예정.
profile
개발이 하고싶은 개발지망생

0개의 댓글