Junit - 21강

연어는결국강으로·2022년 10월 7일
0

Junit

목록 보기
9/9

2022.10.07

21강. 서비스레이어 테스트 - 책 목록보기

	@Test
	public void 책목록보기_테스트() {
		// given

		// stub 
		List<Book> books = new ArrayList<>();
		books.add(new Book(1L, "junit", "metacoding")); 
		books.add(new Book(2L, "bitflow", "dev")); 
				
		when(bookRepository.findAll()).thenReturn(books);

		// when
		List<BookRespDto> dtos = bookService.책목록보기();
		
		// then
		assertThat(dtos.get(0).getTitle()).isEqualTo("junit");
		assertThat(dtos.get(0).getAuthor()).isEqualTo("metacoding");
		assertThat(dtos.get(1).getTitle()).isEqualTo("bitflow");
		assertThat(dtos.get(1).getTitle()).isEqualTo("dev");
		
	}

위와같이 책 목록보기_테스트 메서드를 작성하고 테스트해보면 잘 안된다. 값을 보면 books의 아이디가 2l로만 나오는데 이것은 본 코드에 이상이 있다는 생각을 하게한다. 해서 본 코드에서 작성한 책목록보기를 다음과 같이 수정하였다.

	// 2. 책 목록보기
	public List<BookRespDto> 책목록보기() {
		List<BookRespDto> dtos =  bookRepository.findAll().stream()
				.map((b) -> new BookRespDto().toDto(b))
				.collect(Collectors.toList());
		return dtos;
	}

왜 안되는지 왜 이렇게 바꿧는지는 다음 강의 때 설명해준다고 하였다.


22강. 서비스레이어 테스트 - 메서드 참조 코드 리팩토링

0개의 댓글