반응형
1. book 검색 테스트
@Test
public void bookSearchTest() {
//given
Long id = 1L;
//stub
Book book = new Book(1L, "junit-1", "coding-1");
Optional<Book> bookOP = Optional.of(book);
when(bookRepository.findById(id)).thenReturn(bookOP);
//when
BookRespDto bookRespDto = bookService.booksSearch(id);
//then
assertThat(bookRespDto.getTitle()).isEqualTo(book.getTitle());
assertThat(bookRespDto.getAuthor()).isEqualTo(book.getAuthor());
}
given// 검색에 필요한 1L을 등록
stub// Book객체를 만든다 그 후 , Oprional로 bookOP를 만들어서 방금 생성한 book을 넣는다.
참고로, Optional.of()란 value에 null값이 없는 경우 저장 할 수 있다.
when을 이용해서 bookRepository.findById(id)를 반환할 때 thenReturn으로 bookOP로 반환해준다.
when// bookService.bookSearch(id);를 실행해서 1L을 검색 bookRespDto에 넣는다.
then// aseertThat(bookRespDto.getTitle)과 생성한 book과 비교를 해준다.
2. book 수정 테스트
@Test
public void bookCollectionTest() {
//given
Long id = 1L;
BookSaveReqDto dto = new BookSaveReqDto();
dto.setTitle("junit-seo");
dto.setAuthor("coding-seo");
//stub
Book book = new Book(1L, "junit-1", "coding-1");
Optional<Book> bookOP = Optional.of(book);
when(bookRepository.findById(id)).thenReturn(bookOP);
//when
BookRespDto bookRespDto = bookService.bookCollection(id, dto);
//then
assertThat(bookRespDto.getTitle()).isEqualTo(dto.getTitle());
assertThat(bookRespDto.getAuthor()).isEqualTo(dto.getAuthor());
}
수정을 하기위해서 given에서 수정할 데이터를 입력한다.
given// BookSaveReqDto에는 id변수가 없기 때문에 따로 만들어 주고, dto변수에 setTitle과 setAuthor을 입력해준다.
stub// 기존에 db에 있을 book객체를 만든다. 그리고 bookOP로 값을 넣어주고 반환해준다.
when// bookRespDto에 dto에서 만든 "junit-seo"과"coding-seo"를 반환해준다.
then// assertThat으로 비교해준다.
이상!! Service는 완료했습니다. 다음은 Controller를 공부해 가도록 하겠습니다.
반응형
'개발 > Junit' 카테고리의 다른 글
⑧Junit Controller 책 리스트, 책 Search, 수정, 삭제 (2) | 2022.10.22 |
---|---|
⑦Junit Controller 초기설정 및 책 등록, 책 리스트 보기 (0) | 2022.10.22 |
⑤Service Junit 테스트 - 3 등록과 리스트 junit테스트 (0) | 2022.10.19 |
④Junit Service 테스트 -2 Service book List, Search (0) | 2022.10.19 |
③Junit Service 테스트 -1 Service book등록 (0) | 2022.10.18 |
댓글