Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- CRUD
- 소프트웨어설계
- 정보처리기사필기
- 프로그래머스
- 게시판만들기
- 자바의정석
- 정처기
- PYTHON
- CRUD구현
- 정처기공부
- 정처기예상문제
- 코딩테스트
- java
- 정처기필기
- 자바
- function
- springboot
- 파이선
- 이것이자바다
- 스프링
- spring
- 스프링부트
- 정처기설명
- 정보처리기사
- 파이썬
- 소프트웨어개발
- 게시판
- 게시판프로젝트
- 자바의정석요약
- 어노테이션
Archives
- Today
- Total
Helmi
프레젠테이션(웹)계층 CRUD 구현 - ⑤CRUD 작성, Delete(삭제) 본문
삭제 처리도 조회와 유사하게 BoardController와 테스트 코드 작성,
삭제는 반드시 POST 방식으로만 처리
com.board.controller.BoardController.java 일부
@PostMapping("/remove")
public String remove (@RequestParam("bno") Long bno, RedirectAttributes rttr) {
log.info("remove..." + bno );
if(service.remove(bno)) {
rttr.addFlashAttribute("result", "success");
}
return "redirect:/board/list";
}
BoardController의 remove()는 삭제 후 페이지 이동 필요하므로 RedirectAttributes를 파라미터로 사용하고 'redirect' 이용해 삭제 처리 후에 다시 목록 페이지로 이동
테스트 코드는 기존의 등록 처리와 유사
com.board.controller.BoardControllerTest.java 일부
@Test
public void testRemove() throws Exception {
//삭제 전 데이터베이스에 게시물 번호 확인할 것
String resultPage = mockMvc.perform(MockMvcRequestBuilders.post("/board/remove")
.param("bno", "25")
).andReturn().getModelAndView().getViewName();
log.info(resultPage);
}
MockMvc 이용해 파라미터 전달할 때 문자열로만 처리해야 함. 테스트 전에 게시물 번호가 존재하는지 확인 후 테스트 실행. 로그 일부는 SQL이 실행됨
경우에 따라 Controller에 대한 테스트 코드를 작성하는 것에 대해 거부감 가지는 경우도 많음. 대부분은 일정에 여유 없다고 테스트 작성하지 않는 경우 많은데 프로젝트 진행하는 멤버들 경험치 낮을수록 테스트 먼저 진행하는 습관 가지는 것이 좋음. 반복적으로 입력과 수정, WAS의 재시작 시간 고려해보면 Controller에 대한 테스트 진행하는 선택이 더 빠른 개발의 결과 낳는 경우 많다!
'SpringBoot' 카테고리의 다른 글
프레젠테이션(웹)계층 CRUD 구현 -④CRUD 작성, Modify(수정) (0) | 2023.05.12 |
---|---|
프레젠테이션(웹)계층 CRUD 구현 -③CRUD 작성, GET(조회) (0) | 2023.05.11 |
프레젠테이션(웹)계층 CRUD 구현 -②CRUD 작성, REGISTER(등록) (0) | 2023.05.05 |
프레젠테이션(웹)계층 CRUD 구현 -①Controller 작성 (0) | 2023.05.04 |
게시판 프로젝트 - 비즈니스 계층 ② 비즈니스 계층의 구현, 테스트 (0) | 2023.05.03 |