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

Como mokar um método que está marcado com modificador final???

@Test public void responseOk () throws Exception { Chave request = new Chave();

    ResponseService responseMock = mock(ResponseService.class);
    when(responseMock.getResponseBody(Mensagem[].class)).thenReturn(new Mensagem[0]);

    RequestService requestMock = mock(RequestService.class);
    when(requestMock.post("{\"texto\":\"oi\"}")).thenReturn(responseMock);

    ConnectionTemplate  connectionMock = mock(ConnectionTemplate.class);
    when(connectionMock.start()).thenReturn(requestMock); // aqui quando roda lança uma null pointer exception, ppois o método .start() eh final

    Factory factoryMock = Mockito.mock(Factory.class);
    when(factoryMock.getICPConnectionTemplate()).thenReturn(connectionMock);

    controller.setFactory(factoryMock);

    Response response = controller.alteraChave(request);

    assertNotNull(response);
}
1 resposta
solução!

Antes que o Mockito possa ser usado para mockar as classes e métodos finais, ele precisa ser configurado.

Precisamos adicionar um arquivo de texto ao diretório src/test/resources/mockito-extensions do projeto chamado org.mockito.plugins.MockMaker e adicionar uma única linha de texto:

mock-maker-inline

O Mockito verifica o diretório de extensões em busca de arquivos de configuração quando ele é carregado. Este arquivo permite o mock dos métodos e classes finais.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software