Spring Boot Service JUnit Test Mockito AssertionFailedError



我在服务JUnit测试中遇到了从服务获取结果的问题。

下面是listBooks方法的参数。

listBooks(int size, int page, Long userId)

在我实现了从服务中列出所有书籍的过程之后,bookListService.listBooks(2,1,1L)的结果为空。

以下是测试方法的结果。

org.opentest4j.AssertionFailedError: 
Expected :1
Actual   :null

测试方法中的问题在哪里?

我该怎么修?

这是下面显示的测试类。

@ExtendWith(MockitoExtension.class)
public class BookListServiceTest {
@InjectMocks
private BookListService bookListService;
@Mock
private BookRepository bookRepository;
@Mock
private CategoryService categoryService;
@Test
void givenBookList_whenGetAllBooks_thenReturnBookList() {
// given - precondition or setup
BookResponse bookResponse1 = BookResponse.builder().bookStatus(BookStatus.READING)
.title("Book Title 1")
.categoryId(1L)
.build();
BookResponse bookResponse2 = BookResponse.builder().bookStatus(BookStatus.READING)
.title("Book Title 2")
.categoryId(1L)
.build();
List<BookResponse> bookListResponse = Arrays.asList(bookResponse1,bookResponse2);
Category category = Category.builder().name(CategoryType.COMIC.getValue()).build();
SaveBookRequest saveBookRequest1 = SaveBookRequest.builder().bookStatus(BookStatus.READING)
.title("Book Title 1")
.userId(1L)
.categoryId(1L)
.build();
SaveBookRequest saveBookRequest2 = SaveBookRequest.builder().bookStatus(BookStatus.READING)
.title("Book Title 2")
.userId(1L)
.categoryId(1L)
.build();
Book book1 = Book.builder().category(category)
.bookStatus(saveBookRequest1.getBookStatus())
.title(saveBookRequest1.getTitle())
.publisher(saveBookRequest1.getPublisher())
.lastPageNumber(saveBookRequest1.getLastPageNumber())
.authorName(saveBookRequest1.getAuthorName())
.totalPage(saveBookRequest1.getTotalPage())
.userId(saveBookRequest1.getUserId())
.build();
Book book2 = Book.builder().category(category)
.bookStatus(saveBookRequest2.getBookStatus())
.title(saveBookRequest2.getTitle())
.publisher(saveBookRequest2.getPublisher())
.lastPageNumber(saveBookRequest2.getLastPageNumber())
.authorName(saveBookRequest2.getAuthorName())
.totalPage(saveBookRequest2.getTotalPage())
.userId(saveBookRequest2.getUserId())
.build();
// when -  action or the behaviour that we are going test
when(categoryService.loadCategory(anyLong())).thenReturn(category);
when(bookRepository.save(any(Book.class))).thenReturn(book1);
when(bookRepository.save(any(Book.class))).thenReturn(book2);
when(
bookRepository.findAll(any(Specification.class), any(Pageable.class))
).thenReturn(new PageImpl<Book>(Arrays.asList(book1,book2)));
// then - verify the output
List<BookResponse> bookListResponseResult = bookListService.listBooks(2,1,1L); // Return Null result
assertEquals(bookListResponse.get(0).getCategoryId(), bookListResponseResult.get(0).getCategoryId());
assertEquals(bookListResponse.get(0).getTitle(), bookListResponseResult.get(0).getTitle());
assertEquals(bookListResponse.get(1).getCategoryId(), bookListResponseResult.get(1).getCategoryId());
assertEquals(bookListResponse.get(1).getTitle(), bookListResponseResult.get(1).getTitle());
}
}

这是下面显示的bookListResponseResult。它的尺寸是2号。

BookResponse(id=null, title=Book Title 1, authorName=null, bookStatus=null, publisher=null, lastPageNumber=null, image=null, categoryId=null, totalPage=null, imageUrl=null)
BookResponse(id=null, title=Book Title 2, authorName=null, bookStatus=null, publisher=null, lastPageNumber=null, image=null, categoryId=null, totalPage=null, imageUrl=null)

在我删除了下面显示的所有这些之后,问题就消失了。

// when -  action or the behaviour that we are going test
when(categoryService.loadCategory(anyLong())).thenReturn(category);
when(bookRepository.save(any(Book.class))).thenReturn(book1);
when(bookRepository.save(any(Book.class))).thenReturn(book2);

最新更新