오늘은 지난 시간에 이어서 Controller 테스트 코드를 작성하고, JUnit 연습을 마치려고합니다. 테스트 코드를 공부하고는 도커를 배워보려고합니다. 예전에 도커가 어떤 기술인지 알아보기만하고 방치해놔서...ㅎㅎ;; 밀린 강의 들으면서 개강할 준비 해야겠네요... Controller Test Code 작성 일단 시작하기에 앞서, 본코드를 작성해보겠습니다. 테스트 코드를 공부하는 입장이니, 일단은 간단하게 Controller를 작성하였습니다. Controlelr 본코드 작성 다음처럼 간단한 CRUD 기능을 구현한 Controller 파일을 생성하였습니다. Test Code 작성 전 세팅 다음처럼 Mockito와 MockMvc를 활용하여 테스트 코드를 작성하였습니다. 책 전체 조회 테스트 일단은 저같이 static 메소드를 바로 알아보기 힘들어서 헤맬분들을 위하여 static import를 하지 않고 그대로 사용하도록 코드를 작성하였
지난 시간에는 Repository에 대한 테스트 코드를 모두 마치고 오늘은 Service에 대한 테스트 코드를 작성하게 되었습니다. 그런데, TDD를 통하여 Service를 개발하려니 어떻게 시작해야할지 막막할 따름입니다... 그래서 구글링을 해보았으나, 다들 Service 메소드를 먼저 구현한 뒤에 테스트하는 방식을 사용하고 있었습니다. 계속 찾아보고는 있으나, 마땅한 글이 없더라구요... 그래서 생각해봤는데, 테스트 코드를 작성할 줄 아는 것이 우선이라고 생각해서 메소드를 먼저 만든 뒤, 이를 확인하는 형태의 테스트 코드를 작성하기로 했습니다. TDD는 추후에 테스트 코드를 좀 더 작성해본 뒤, 감을 잡으면 그때 연습해가야 할 것 같습니다. Service 본코드 작성 일단은 본코드를 먼저 작성하기로 하였기 때문에, Service를 간단하게 구현만 해주었습니다. 다음처럼 간단하게 DTO파일, 예외 처리가 필요한 부분만 만들어주고, 나머지는 그냥 정말 기능만 구
지난 시간에는 Repository 테스트 코드를 하나만 작성해보고 말았었는데, 오늘은 Repository 테스트 코드를 모두 작성하고, Service 테스트 코드도 작성해보겠습니다. 제가 작성하게되는 테스트 코드는 TDD를 연습하기 위해 메타코딩님의 Junit 강의를 참고하여 작성한 코드이며, 모범적인 테스트 코드가 아닐 수 있습니다. 혹시 오류나 어색한 부분이 있을 경우 말씀해주시면 감사하겠습니다. Repository 테스트 책 목록 조회 테스트 다음처럼 Entity 2개를 생성하여 Repository에 저장해준 뒤, List의 크기와 비교하는 방식으로 테스트 코드를 작성하였습니다. 테스트를 통과하는 모습을 확인할 수 있었으며, 테스트가 맞게 동작하는지 확인하기 위하여, 주어지는 데
지난번에는 오류로 인하여 불가피하게 테스트 코드 작성을 못해보았으나, 어떻게 해결하게 되어서 오늘 테스트 코드를 작성해보면서 테스트란 어떤 것인지 확인해보려고합니다. Repository 테스트 일단 간단하게 Repository에서 제공하는 메소드를 테스트해보겠습니다. save 테스트 테스트는 3가지 단계로 구성된다고합니다. 1) given 2) when 3) then given의 경우에는 데이터가 주어졌을경우, when의 경우에는 데이터를 통하여 테스트하고자하는 메소드를 실행하였을 경우 then의 경우에는 실행한 결과를 통하여 증명하는 경우라고 이해하면 될 것 같습니다. 다음처럼 저장할 객체를 만들기 위한 정보를 만들어주고, save 메소드를 통하여 Repository에 객체를 저장해줍니다. 이때, save() 메소드를 통하여 반환되는 객체를 따로 저장하여 추후에 증명에 사용해줍니다. 마지막으로는 Assertions.assertEquals() 메소드를 사
기존에 하고 있던 알고리즘 공부가 얼추 마무리 되고 있어서, 아마 1월 말부터 기존에 공부하려고 했었던 JPA, Docker, 테스트 코드에 대해서 공부할 것 같습니다. 일단 오늘은 미루고 미뤘던 테스트 코드에 대해서 알아보고 실습해보는 시간을 가지겠습니다. 일단은 테스트 코드 공부는 youtube에 메타 코딩이라는 분의 강의 시리즈를 보면서 공부할 것 같습니다. 메타코딩 JUnit 강의 https://www.youtube.com/watch?v=kYqGAM2culU&list=PL93mKxaRDidEZfpXoyWZ-2ZLsYrQByDMP&index=1 일단 프로젝트를 생성해줍니다. 라이브러리의 경우, Lombok, JPA, MySQL Driver, Spring Web을 추가해주었습니다. ![](https://velog.velcdn.com/images/chrkb1569/post/e6c4a26f-c507-4292-88c8-5deae6aa57a9/image.