Oi! Para eu fazer os testes do método de consulta no controller que utiliza Pageable, a única forma que eu tentei criar o método, foi o exemplo abaixo. Só que está dando erro de NullPointerException no domínio que vem nulo. Como que eu faço o testes para tratamento para estes tipos de método, para casos de sucesso e erro?
@Test
@DisplayName("Deveria devolver código http 200, quando as informações estiverem válidas")
@WithMockUser(username = "test-appl@teste.com", authorities = {"ROLE_ADMIN"})
void listBeneficiaryCenario2() throws Exception {
PageRequest paginacao = PageRequest.of(0, 10);
String expectedName = DadosListagemBeneficiarioCreator.createDadosListagemBeneficiarioValid().nome();
Page<DadosListagemBeneficiario> listagemBeneficiarioPage = beneficiarioController.listBeneficiary(paginacao).getBody();
assertThat(listagemBeneficiarioPage).isNotNull();
assertThat(listagemBeneficiarioPage.toList())
.isNotEmpty()
.hasSize(1);
assertThat(listagemBeneficiarioPage.toList().get(0).getClass()).isEqualTo(expectedName);
assertThat(listagemBeneficiarioPage).isNotNull();
}
Stacktrace do erro:
java.lang.NullPointerException: Cannot invoke "org.springframework.http.ResponseEntity.getBody()" because the return value of "com.plano.saude.cadastro.controller.BeneficiarioController.listBeneficiary(org.springframework.data.domain.Pageable)" is null
at com.plano.saude.cadastro.controller.BeneficiarioControllerTest.listBeneficiaryCenario2(BeneficiarioControllerTest.java:174)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)