queria tirar uma duvida com vcs, tenho um ambiente com o http://www.eclemma.org/index.html o qual uso para saber qtos % dos meus tests estão cobertos. Quando nao uso uma API de mock, agora estou usando o Mockito a classe core tem seu % de cobertura, porem nas classes que são “mockadas” não aparece a cobertura, porem todos os testes estão passando.
A duvida é como, eu posso resolver isso? de saber qtos % das classes q usam mock estao cobertas?
As classes que estao mockadas nao estao sendo utilizadas, logo nao deveriam ter cobertura nenhuma…
Acho que eu nao entendi a duvida direito, pode esclarecer melhor qual o numero que esta errado?
L
LPJava
opa! cv. é isso que está rolando as classes mockadas estão sem cobertura, e achei que tinha algo de errado nisso. que elas deveriam ter, e como faria para cobrir. Então sempre que mockar terei 0% de cobertura, pq?
flw.
E
esmiralha
LPJava:
opa! cv. é isso que está rolando as classes mockadas estão sem cobertura, e achei que tinha algo de errado nisso. que elas deveriam ter, e como faria para cobrir. Então sempre que mockar terei 0% de cobertura, pq?
flw.
Porque esse teste não está testando a classe mockada. Crie outro teste para testar essa classe de verdade. Assim vc terá cobertura nela também.
L
LPJava
hm, mais se eu testar a classe real, estarei dependendo da conexao com o BD etc. um exemplo basico:
Mas, a cobertura para classe UsuarioDAO é 0%. Isso que n entendi como resolver.
flw, pessoal.
R
RafaelViana
Não gosto de mocks… Para testar interações com o banco utilizo a classe real.
No hibernate.cfg.xml eu configuro: create
E no @BeforeClass de cada teste eu recrio a session factory (assim recria também o banco).
No @BeforeClass eu também populo o banco (que está vazio) com os dados necessários para os testes
o qual chama o metodo real e mantendo o lance da mock. nao pensei duas vezes para testar e agora está cobrindo.
Vejam como ficou e agora está chamando o metodo real usando uma mock.
Bem, nao sei se há outra forma melhor de fazer isso, mas acho que já atende.
PessoALL gostaria de fazer uma pergunta que deve ser básica para vocês, mas que não entra na minha cabeça.
Por que criar uma método de teste que verifica o resultado do que foi mockado?
Veja o código abaixo. Nunca vai dar erro. Gerou um user com email (linha 3). Mocou o método buscaUsuarioPorEmail que retorna o user criado (linha 4) e fez um assertEquals do que sabemos qual vai ser o retorno. Poderia me explicar o porquê disso? Qual o ganho de criar um teste desse tipo?
PessoALL gostaria de fazer uma pergunta que deve ser básica para vocês, mas que não entra na minha cabeça.
Por que criar uma método de teste que verifica o resultado do que foi mockado?
Veja o código abaixo. Nunca vai dar erro. Gerou um user com email (linha 3). Mocou o método buscaUsuarioPorEmail que retorna o user criado (linha 4) e fez um assertEquals do que sabemos qual vai ser o retorno. Poderia me explicar o porquê disso? Qual o ganho de criar um teste desse tipo?
Esse caso especifico nao precisa mesmo. Pra mim só faz sentido por exemplo se “buscarUsuarioPorEmail” lancar alguma excecao ou retornar nulo para que eu possa testar a reação do meu código a esses casos.
Esse exemplo ai nao esta testando o código do cara, esta testando o mockito.