Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Dúvida no Ex. 70 da Aula 1 - Simulando comportamentos com Mock Objects

public class TesteEndereco {

    @Test
    public void testeCadastro(){

        Endereco endereco = new Endereco("Bahia", "bairro", "complemento", "numero", "cidade", true);        
        ControladorEndereco controladorEnderco = mock(ControladorEndereco.class);
                Mockito.when(controladorEndereco.inserir(endereco)).thenReturn(true); 

    }
}

não entendo porque esta dando erro, alguem poderia me ajudar e verificar o que esta errado? Esses metodos when e thenReturn recebe esses paramentros?

6 respostas

Oi Renata, tudo bem?

Qual o erro que está aparecendo?

Abraço.

ele diz que ele argumento não se aplica ao metodo when deve por conta que o metodo inserir tem um retorno o que eu poderia fazer?

desculpa tudo bem sim, e vc?

para verificar se esta cadastrando o que devo fazer? ou vc sabe como funciona esse teste ? é só comparativo como verificar se o os campos estão sendo preenchidos ou outra coisa do tipo? Eu gostaria de saber se esta cadastrando. como devo fazer?

o meu insert ele é void , sera que ele tem que retornar um objeto p funcionar?

solução!

Oi Renata, desculpe a demora.

A intenção de utilizar mocks é diferente do que, pelo que entendi, você está querendo. O que você quer é testar se realmente está inserindo no banco de dados correto?

Esse assunto é coberto em outro curso da trilha de testes, que é Testando suas SQLs e DAOs:

https://www.alura.com.br/course/PM-73

O cenário descrito na primeira aula desse curso de mocks mostra sua intenção: nesse momento não queremos testar de fato a conexão com o banco de dados, queremos testar apenas os algoritmos da classe EncerradorDeLeilao de forma isolada.

O método encerra() em EncerradorDeLeilao faz acesso ao banco de dados, mas como gostaríamos de testar de forma isolada, passamos dados falsos, como se fossem os dados que deveriam vir do banco, de uma forma que controlamos os dados que estamos passando.

Dessa forma conseguimos testar o comportamento do método encerra(), sem ter que se preocupar se a conexão real com o banco de dados está funcionando.

A conexão real com o banco de dados deve ser testada em outro momento.

Faz sentido? Se restar alguma dúvida, nos avise.

Abraço.

obrigada