Como testar um método que chama outro método?

`Olá, boa noite. Alguém sabe me dizer como testar (com junit) o seguinte trecho de exemplo abaixo. (Procurei em vários locais mas não consegui resultados)

public void logar() {
    //lógica de login
    if(conseguiuLogar) {
        carregarTelaInicial();
    } else {
        System.out.println("Usuário não encontrado");
    }
}

Como testar a parte que o if é verdade? Tipo, tem alguma maneira de saber se o “carregarTelaInicial()” é chamado?

Você pode simplesmente criar um método que retorne um valor booleano, por exemplo. Se o valor retornado não for false, significa que o método foi executado.

Exemplo:

private boolean carregarTelaInicial() {
boolean teste = false;
//...... código, testes, validações, etc... se tudo der certo, setar teste como true;
teste = true;
return teste;
}

Na sua classe:

if(conseguiuLogar) {
    if (carregarTelaInicial()) {
        System.out.println("Executou o método!");
    } else {
       System.out.println("Erro: Método não executado!");
    }
} else {
    System.out.println("Usuário não encontrado");
}

Não testei o código, mas eu uso muito esse tipo de raciocínio no meu sistema.

1 curtida

Qual método está alterando o valor da variável conseguiuLogar?