목록Spring Test (4)
[꼼꼼한 개발자] 꼼코더
🔍 조회 페이지와 이동 게시물의 등록, 리스트 처리가 끝났다면 가장 중요한 틀은 완성되었다고 볼 수 있다. 다음은 목록 페이지에서 링크를 통해 Get방식으로 특정한 번호의 게시물을 조회할 수 있는 기능을 작성하자. 👨🏻💻 조회 페이지 작성 조회 페이지는 입력 페이지와 거의 유사하지만 게시물 번호(bno)가 출력된다는 점과 모든 데이터가 읽기 전용으로 처리된다는 점이 가장 큰 차이이다. 게시물 조회는 BoardController를 보면 get() 메소드로 작성하였다. 👨🏻💻 get.jsp 작성 views/board → get.jsp 생성 게시물 번호를 보여줄 수 있는 필드를 추가하고 모든 데이터는 readonly로 작성한다. 수정/삭제 페이지로 이동하거나 원래 목록 페이지로 이동할 수 있는 버튼을 추가..
👷🏻♂️ 등록 처리와 테스트 BoardController에 POST 방식으로 처리되는 register()를 작성하면 아래와 같다. 👨🏻💻 BoardController 작성 register() 메서드는 조금 다르게 String을 리턴 타입으로 지정하고 RedirectAttributes를 파라미터로 지정한다. 이는 등록 작업이 끝나면 다시 목록화면으로 이동하기 위함인데 추가적으로 새롭게 등록된 게시물의 번호를 같이 전달하기 위해서 RedirectAttributes를 이용한다. 리턴 시에는 ‘redirect:’ 접두어를 사용하는데 이를 이용하면 스프링 MVC가 내부적으로 response.sendRedirect()를 처리해 주기 때문에 편리하다 👨🏻💻 BoardControllerTest 작성 테스트할 때 ..
💡 Controller의 작성 스프링 MVC의 Controller는 하나의 클래스 내에 여러 메서드를 작성하고 @RequestMapping 등을 이용하여 URL을 분기하는 구조로 작성하기 때문에 하나의 클래스에서 필요한 만큼 메서드의 분기를 이용하는 구조로 작성된다. 과거에는 이 단계에서 Tomcat(WAS)을 실행하고 웹 화면을 만들어 결과를 확인하는 방식의 코드를 작성해 왔었다. 하지만 시간이 오래 걸리고, 테스트를 자동화하기에 어려움이 많아 앞으로 할 예제에서는 WAS를 실행하지 않고 Controller를 테스트할 방법을 학습해 보자 🧐 BoardController의 분석 작성 전에는 ‘원하는 기능을 호출하는 방식에 대해 테이블로 정리 후 코드로 작성’하는 것 이 좋다. 테이블에서 From 항목은 ..
👷🏻♂️ 비즈니스 계층의 구현과 테스트(테스트 코드 작성) BoardMapper와 BoardService, BoardMapperServiceImpl에 대한 구조 설정이 완료되었으므로 테스트 클래스를 작성해 본다. 👨🏻💻 BoardServiceTests 작성 src/test/java → org.zerock.service → BoardServiceTests 클래스 작성 💁🏻♂️ 결과 BoardServiceTests의 첫 테스트는 BoardService 객체가 제대로 주입이 가능한지 확인하는 작업 정상적으로 BoardService 객체 생성 후 BoardMapper가 주입되었다면 아래와 같이 BoardServiceService 객체와 데이터 베이스 관련 로그가 같이 출력된다. 👨🏻💻 등록 작업의 구현과..