2. JPA 프로젝트 테스트하기
1. GO TO 를 이용하여 Test Class 생성
2. Mockito를 사용하기 위해 세팅
@ExtendWith : JUnit5 부터 사용되는 메소드로 service 영역에 대한 단위 테스트를 위해 사용. Mockito 프레임워크를 사용하기 때문에 MockitoExtension.class 를 작성하였다.
@Mock : 실제 객체가 아닌 빈껍데기 객체를 생성하는 메소드 사용할 수 있지만 값이 0, false, null 중 하나다.
@InjectMocks : Mock에서 정의한 빈껍데기를 가지고있는 빈껍데기 Service 객체이다.
3. 비교를 위한 예상 Board 객체 생성
4. C R U D 테스트 메소드 실행
1. boardRepository save() 메소드에 아무 Entity가 들어오면 board 객체를 리턴한다.
2. service에 정의된 createBoard 를 수행하기 위해 CreateBoardDto를 만든다.
3. when thenReturn에 정의한 save() 메소드를 실행하기 위해 createBoard() 메소드를 실행한다.
4. 결과값으로 얻은 boardId와 원래 얻어야 할 board의 id값을 비교하여 같은지 확인한다.
1. boardRepository findById() 메소드에 특정 Id 값이 들어오면 board 객체를 리턴한다.
2. service에 정의된 readBoard 를 수행한다.
3. service 메소드로 얻은 ResponseBoardDto 객체와 미리 정의된 board 객체의 값이 같은지 확인한다.
1. boardRepository findById() 메소드에 특정 Id 값이 들어오면 board 객체를 리턴한다.
2. boardService에서 updateBoard()에 넣어줄 updateBoardDto 생성
3. updateBoard() 실행 후 dto 리턴
4. 리턴받은 dto와 update를 위해 생성한 dto의 값이 같은지 확인한다.
1. id 값이 들어왔을 때 해당 entity를 찾는 메소드 정의
2. findById에서 찾은 entity를 가지고 삭제하는 delete메소드를 정의. return 값이 void이기 때문에 doNothing을 이용하여 정의한다.
3. 테스트할 service의 메소드를 수행한다.
4. 결과값 비교하여 같은 값인지 확인한다.