1
resposta

Como ignorar acesso a uma chama de de método private dentro da classe que estou testando?

Oi Rodrigo, Olha eu estou testando um determinado método e, detro dele ele faz uma chamada a outro método que é privado e eu não consigo usar Mockito.when para simular a chamada dele, tem como dizer ao @Test que ignore essa chamada?

@Test public void deveRetornarIdadeInsuficiente() throws NegocioException, PrincipalException {

    Mockito.when(parametroService.pesquisarPorId(Mockito.any())).thenReturn(p);

    // Mockito.when(relatorioConclusao.deducaoAutomatica(Mockito.any(),
    // Mockito.any())).thenReturn(null);

    CalculoRegra msg = relatorioConclusao.retornaRegra(analise);
    System.out.println(msg);
    Assert.assertEquals(MensagemConclusaoEnum.IDADEINSUFICIENTE.getDescricao(), MensagemConclusaoEnum.IDADEINSUFICIENTE.getDescricao());
}

No caso essa chamada relatorioConclusao.retornaRegra(analise); tem dentro dela uma chamada ao método privado deducaoAutomatica, tem como ignorar esse deducaoAutomatica?

1 resposta

Oi Sérgio,

Nesse caso não tem como, pois esse método deducaoAutomatica() pertence a própria classe que você está testando e não a um mock que é passado como parâmetro para ela.

Teria que pensar se é possível extrair esse método privado para ser uma classe separada que é passada como parâmetro para a classe relatorioConclusao.