코드 그라데이션
230217 BoardServiceImpl 테스트 코드 (4) 게시글 삭제 본문
초안
@Test
@DisplayName("게시글 삭제 성공 테스트")
void deleteBoard() {
//given
Board board = mock(Board.class);
User user = mock(User.class);
when(boardRepository.findById(board.getId())).thenReturn(Optional.of(board));
when(Optional.of(board).get().checkBoardWriter(user)).thenReturn(true);
//when
boardService.deleteBoard(board.getId(),user);
//then
verify(boardRepository).deleteById(board.getId());
}
}
부연설명
크게 지적할 것은 없지만...
verify(boardRepository).deleteById(board.getId());
이 코드는 사실 어떤 걸 의미하는 지 명확하게 모르는 코드이다.
=> 즉 이 말은 어떤 값을 집어넣어도 다 통과가 나올 수 있다는 말.
아마 그래서 통과가 일어나지 않았을까 추론해본다.
몇 번 호출이 되었는지 검증하는 코드가 이렇다
verify(boardRepository, times(1)).deleteById(board.getId());
만약 time을 영으로 바꾸면, 당연히 안 들어간다!
수정 후 코드
@Test
@DisplayName("게시글 삭제 성공 테스트")
void deleteBoard() {
//given
Board board = mock(Board.class);
User user = mock(User.class);
when(boardRepository.findById(board.getId())).thenReturn(Optional.of(board));
when(Optional.of(board).get().checkBoardWriter(user)).thenReturn(true);
//when
boardService.deleteBoard(board.getId(),user);
//then
verify(boardRepository, times(1)).deleteById(board.getId());
}
}
728x90
'Spring > Test Code' 카테고리의 다른 글
.isNotSameAs() 와 .isNotEqualTo() (1) | 2024.01.26 |
---|---|
JUnit과 TestCode (0) | 2023.03.01 |
230217 BoardServiceImpl 테스트 코드 (3) 게시글 조회 (0) | 2023.02.27 |
230217 BoardServiceImpl 테스트 코드 (2) 게시글 수정 성공 / 실패 (0) | 2023.02.26 |
230217 BoardServiceImpl 테스트 코드 (1) 게시글 생성 - 비교 (0) | 2023.02.26 |
Comments