[꼼꼼한 개발자] 꼼코더

32. 코드로 배우는 스프링 웹 프로젝트 - [비즈니스 계층] - 비즈니스 계층의 구현과 테스트(등록, 조회 , 삭제 / 수정) 본문

Spring/코드로 배우는 스프링 웹 프로젝트

32. 코드로 배우는 스프링 웹 프로젝트 - [비즈니스 계층] - 비즈니스 계층의 구현과 테스트(등록, 조회 , 삭제 / 수정)

꼼코더 2023. 1. 9. 23:35
반응형
 

👷🏻‍♂️ 비즈니스 계층의 구현과 테스트(테스트 코드 작성)

BoardMapper와 BoardService, BoardMapperServiceImpl에 대한 구조 설정이 완료되었으므로

테스트 클래스를 작성해 본다.

👨🏻‍💻 BoardServiceTests 작성

src/test/java → org.zerock.service → BoardServiceTests 클래스 작성

 

💁🏻‍♂️ 결과

BoardServiceTests의 첫 테스트는 BoardService 객체가 제대로 주입이 가능한지 확인하는 작업

정상적으로 BoardService 객체 생성 후 BoardMapper가 주입되었다면

아래와 같이 BoardServiceService 객체와 데이터 베이스 관련 로그가 같이 출력된다.

 


👨🏻‍💻 등록 작업의 구현과 테스트

등록 작업은 BoardServiceImple에서 파라미터로 전달되는 >  BoardVO 타입의 객체를 >  BoardMapper를 통해서 > 처리한다.

구현코드는 아래와 같다.

 

👨🏻‍💻 BoardServiceImpl 작성

BoardService는 void 타입으로 설계되었으므로 mapper.insertSelectKey()의 반환 값인 int를 사용하고 있지 않지만 필요시 예외처리나 void 대신 int타입을 이용해서 사용할 수 있다.

mapper.insertSelectKey()를 이용해서 나중에 생성된 게시물의 번호를 확인할 수 있게 작성.

👨🏻‍💻 BoardServiceTests 작성

💁🏻‍♂️ 결과

생성된 게시물의 번호를 확인할 수 있다.


👷🏻‍♂️ 목록(리스트) 작업의 구현과 테스트

👨🏻‍💻 BoardServiceImpl 작성

현재 테이블에 저장된 모든 데이터를 가져오는 getList()는’ 아래처럼 구현한다.

👨🏻‍💻 BoardServiceTests 작성

💁🏻‍♂️ 결과

추가된 데이터가 정상적으로 나오는지 확인


👷🏻‍♂️ 조회 작업의 구현과 테스트

조회는 게시물의 번호가 파라미터이고 BoardVO의 인스턴스가 리턴이 된다.

👨🏻‍💻 BoardServiceImpl 작성

👨🏻‍💻 BoardServiceTests 작성

💁🏻‍♂️ 결과

 


👷🏻‍♂️ 삭제 / 수정 구현과 테스트

삭제 / 수정은 메서드의 리턴 타입을 void로 설계 가능하나

엄격하게 처리하기 위해 Boolean 타입으로 처리한다.

👨🏻‍💻 BoardServiceImpl 작성

정상적으로 수정, 삭제가 이루어지면 1이라는 값이 반환되기 때문에

‘==’ 연산자를 이용하여 true/fasle를 처리할 수 있다.

 

👨🏻‍💻 BoardServiceTests 작성

testDelete()는 게시물이 존재하면 true를 반환

testUpdate()는 게시물 조회하고 title 값 수정한 이후에 업데이트 진행

💁🏻‍♂️ 결과

삭제가 되었다.

 
 

🧹 최종 정리

 
등록 작업은 BoardServiceImple에서 파라미터로 전달되는 >  BoardVO 타입의 객체를 >  BoardMapper를 통해서 > 처리
 
 
 
 
 
Comments