Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Teste Mock em método Pageable em API

Estou em dúvida de como faço para escrever meu teste em Mock para o método findAll da minha API.

No meu controller/resource tenho o seguinte método que lista meus objetos com paginação:

@GetMapping
    public ResponseEntity<Page<ListagemReceitasDTO>> listar(@PageableDefault(size = 10, page = 0, sort = {"descricao"}) Pageable paginacao) {

        return ResponseEntity.ok().body(repository.findAll(paginacao).map(ListagemReceitasDTO::new));

    }

E na classe teste está da seguinte maneira:

@Test
    void whenListarThenReturnListOfReceitasDTO() {
        Pageable page = Pageable.unpaged();
        Page<ListagemReceitasDTO> page1 = Page.empty();

        when(repository.findAll()).thenReturn(List.of(receita));

        ResponseEntity<Page<ListagemReceitasDTO>> response = controller.listar();


        assertNotNull(response);
        assertNotNull(response.getBody());
        assertEquals(ResponseEntity.class, response.getClass());
        assertEquals(ArrayList.class, response.getBody().getClass());

    }

Ao chamar

ResponseEntity<Page<ListagemReceitasDTO>> response = controller.listar();

o 'listar' não compila, pois acredito que falta complementar o teste para esse saber lidar com essa Page.

link do repositório: https://github.com/matthewmatheus/renda-familiar-api

1 resposta
solução!

Opa, fala men, tudo certo?

Acredito que esse vídeo do DEV DOJO tem o que você precisa, usei ele como referência para testar meus métodos pageable https://youtu.be/XuAd2LHNjzY?list=PL62G310vn6nFBIxp6ZwGnm8xMcGE3VA5H