Duvida Mockito + coverage  XML
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Autor Mensagem
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

olá pessoal,

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?

Alguem já passou por isso?

flw.

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

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?
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

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.

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
esmiralha
JavaEvangelist

Membro desde: 19/07/2006 09:04:42
Mensagens: 402
Offline

LPJava wrote: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.
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

hm, mais se eu testar a classe real, estarei dependendo da conexao com o BD etc. um exemplo basico:


Como testaria isso?

Hoje tenho algo assim:


Mas, a cobertura para classe UsuarioDAO é 0%. Isso que n entendi como resolver.

flw, pessoal.
[Thumb - coveragedao.png]
 Nome do arquivo coveragedao.png [Disk] Download
 Descrição
 Tamanho 17 Kbytes
 Baixado:  39 vez(es)


Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
RafaelViana
GUJ Master

Membro desde: 23/03/2008 18:56:02
Mensagens: 1257
Localização: Venâncio Aires/RS
Offline

Não gosto de mocks.. Para testar interações com o banco utilizo a classe real.

No hibernate.cfg.xml eu configuro: <property name="hibernate.hbm2ddl.auto">create</property>

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

Eu faria algo assim no seu teste:



Observação: É apenas uma dica de como utilizo. Não sei se a maneira mais adequada, mas no meu caso tem funcionado.

This message was edited 2 times. Last update was at 26/02/2011 11:46:54


Rafael Rodrigues Viana
Estudando Java e Flex
Blog: http://www.cauirs.com.br/rafael/

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
[Email] [MSN]
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

pois eh eu tb fiz assim já, e nao sabia se estava fazendo de forma adequada.

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
esmiralha
JavaEvangelist

Membro desde: 19/07/2006 09:04:42
Mensagens: 402
Offline

Se o teste toca o banco de dados, ele não é um teste unitário. Eu mockaria o mẽtodo getSession e retornaria um MockSession.
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

opa! pessoal,

achei a solucao usando mockito, hehe dando uma lida na documentacao http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html#when%28T%29 eu vi esse cara aqui:



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.

alguem já tinha implementado assim?

abracos,
[Thumb - mockrealmethoddao.png]
 Nome do arquivo mockrealmethoddao.png [Disk] Download
 Descrição
 Tamanho 57 Kbytes
 Baixado:  45 vez(es)


Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
 
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Ir para:   
Powered by JForum 2.1.8 © JForum Team