프로젝트를 시작하면 하루하루가 배움의 연속이다.
이번 프로젝트에서 MockMVC를 처음 사용했는데, 말 그대로 가짜(mock) mvc 환경을 조성한다. 덕분에 서버를 실행시키는 수고를 거치지 않고 Controller 클래스 기능 테스트를 할 수 있다.
사실 아직까지 테스트 클래스 작성의 실효성이 크게 와닿지 않는다. 하지만 좋다는 것은 알겠다. 테스트를 통해 밑바닥부터 튼튼한 서비스를 만들고 있다는 느낌을 얻을 수 있다. 그리고 이는 자신의 코드에 대한 자신감으로 이어지는 것 같다. 다. 꼼꼼한 테스트 구현이 가능하도록 연습해야겠다.
다시 MockMVC로 돌아가서, 아이디 중복체크 기능을 테스트하면서 HTTP 상태 코드 200을 반환하는 여부를 확인했더니 잘 진행되었다. 그렇게 넘어가려던 찰나, 가만히 생각해보니 메서드 반환 값이 Boolean 타입이라 상태 코드는 의미가 없는 것 같다고 생각했다. 그래서 리턴 형태가 true인지 false인지 확인하도록 테스트 코드를 수정했더니 방금 전까지 통과했던 테스트가 통과하지 못했다. 원인은 반환하는 데이터 형태가 application/xml 형태라는 것이었다. json 형태로 데이터를 주고받도록 구현했기 때문에 구글링을 통해 반환 데이터 형식을 명시할 수 있는 MockMVC 메서드를 추가해서 다시 테스트를 진행했다. 결과는 테스트 통과.
이 과정을 통해 테스트를 하려면 제대로 하던지, 아니면 하지 말고 개발 속도를 높이던지 둘 중 하나만 제대로 하는 것이 차라리 낫겠다고 생각했다. 물론 둘 다 제대로 하면 최상이겠지.
테스트를 위한 테스트를 하지 말고 확실하게 기능을 확인하는 테스트를 구현하자. 가 오늘 배운 교훈이다.
'Programming > 개인 프로젝트' 카테고리의 다른 글
[중고거래장터 - Study&Refactoring] 캐싱 기능 적용(Spring MVC + Redis + Jedis) XML 방식 (0) | 2022.03.15 |
---|---|
[중고거래장터 -5] URL 디자인 그리고 Spring Security (0) | 2022.02.16 |
[중고거래사이트 - 4] 제대로 만든다는 것은 무엇일까 (0) | 2022.02.12 |
[중고거래사이트 - 2] 테이블 재구성 및 Git-Flow 모델로 구현 (0) | 2022.02.09 |
[중고거래사이트 - 1] Use Case 작성 및 ERD 다이어그램 작성 (0) | 2022.02.08 |