模拟返回Page接口的方法

37

我有一个需要编写单元测试用例的方法,该方法返回一个Page类型。

我该如何对这个方法进行模拟测试?

方法:

public Page<Company> findAllCompany( final Pageable pageable )
{
    return companyRepository.findAllByIsActiveTrue(pageable);
}

谢谢您的帮助


1
when(companyRepository.findAllByIsActiveTrue(pageable)).thenReturn(your_mock_page_object); - Abubakkar
1个回答

75

你可以使用Mock响应或实际响应,然后使用when,例如:

Page<Company> companies = Mockito.mock(Page.class);
Mockito.when(companyRepository.findAllByIsActiveTrue(pageable)).thenReturn(companies);

或者,只需实例化这个类:

List<Company> companies = new ArrayList<>();
Page<Company> pagedResponse = new PageImpl(companies);
Mockito.when(companyRepository.findAllByIsActiveTrue(pagedResponse)).thenReturn(pagedResponse);

2
在这个上下文中,“pageable”是什么意思?存储库方法findAllCompany可以访问它,但测试不能。我想模拟“Pageable pageable”参数以及“Page”返回类型。 - Dalibor Filus
@DarshanMehta - 你能在这里给我指导一下吗:https://stackoverflow.com/questions/56135373/optional-cannot-be-returned-by-stream-in-mockito-test-classes? - PAA
1
它会给出一个什么都没有的页面吗?那为什么要使用呢? - Satish Patro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接