vraptor e mockito - testes de controllers  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

Pessoal,

estou tentando assegurar no teste que o método redirecione para outro metodo ou view especifica, porém não estou obtendo 100% de êxito, estou fazendo com mockito, segue a situação na prática:

CONTROLLER



TESTE


meu result é um spy(new MockResult());

meu teste passa pois o metodo redirectTO é chamado...

porém quero verificar se o método lista() do controller foi chamado, então faço:



mesmo colocando a linha doReturn... quando chamo verify(this.result).redirectTo(this.controller) é retornado null... logo recebo um nullPointerEx

alguem sabe como verificar se o método lista() está realmente sendo chamado ?

abrassss

This message was edited 4 times. Last update was at 01/06/2011 01:32:19


http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

o doReturn deveria ficar antes do método que vai interagir com o result...


o mockito só verifica a primeira interação, não dá pra fazer a linha:


o que vc pode fazer é modificar o seu doReturn para retornar um spy:



não precisa nem fazer o verify no redirect, pois só vai executar o lista() se passar por ele.

--
Caelum
www.caelum.com.br

renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

Lucas Cavalcanti excelente! obrigado pela prontidão na resposta!

o vraptor realmente é um excelente framework...
fácil de testar, fácil de desenvolver...

vou blogar como testar os controllers e fazer referência a esse post...

parabéns pelo ótimo trabalho...

abrassss

http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

outra questao eh:

CONTROLLER


se meu objeto aluno não passa na validação, o método lista não deveria ser chamado, porém devido ao uso do ValidatorMock o forward nao acontece, logo lista é chamado indevidamente.

existe alguma forma de contornar a situaçao ?


abrasss

http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

o mockValidator não executa a validação de verdade...

o que vc pode fazer é usar o JSR303MockValidator (caso esteja usando BeanValidation) ou o HibernateMockValidator (caso esteja usando HV 3)

caso essas classes ainda não estejam disponíveis, vc pode copiá-las:
https://github.com/caelum/vraptor/blob/master/vraptor-core/src/main/java/br/com/caelum/vraptor/util/test/JSR303MockValidator.java
https://github.com/caelum/vraptor/blob/master/vraptor-core/src/main/java/br/com/caelum/vraptor/util/test/HibernateMockValidator.java

--
Caelum
www.caelum.com.br

renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

Excelente!

funcionou lindo... controllers testados!

porém tive de usar o hibernate-validator 3x com o 4 da classnotfoundex...

abrasssss

http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

classNotFound em qual classe?

prefira usar o Hibernate Validator 4, pois ele faz parte da especificação BeanValidations do java...

--
Caelum
www.caelum.com.br

renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

usando o valitator 4.1.0.Final

da:



abrassss

http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

tente usar esses jars:

https://github.com/caelum/vraptor/blob/master/vraptor-core/lib/optional/hibernate/hibernate-validator-4.0.2.GA.jar

https://github.com/caelum/vraptor/blob/master/vraptor-core/lib/optional/hibernate/validation-api-1.0.0.GA.jar

e remover os outros jars do hibernate-validator... se ainda estiver dando erro tente dar um clean no projeto e no server, deveria funcionar

--
Caelum
www.caelum.com.br

renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

excelente, porem, como coloco essas dependencias no meu pom.xml ?

pergunta imbecil, esquece, ja achei no rep do maven... vou testar

obrigado lucas

abrasss

This message was edited 1 time. Last update was at 04/06/2011 11:10:35


http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

lucas, mesma ex...




sao esses os pacotes mesmo ?

edit:
pq dentro desses jars realmente n existe a classe ClassValidator

abrasss

This message was edited 1 time. Last update was at 04/06/2011 11:24:33


http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

roda:

mvn dependency:tree

e vê se aparece mais de um hibernate-validator...
se não se importar, posta aqui o resultado

--
Caelum
www.caelum.com.br

renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

apenas o novo mesmo



edit---
lucas, nao estamos errando as versoes ? pois dentro dos jars mencionados acima nao existe org.hibernate.validator.ClassValidator

abrassss

This message was edited 1 time. Last update was at 04/06/2011 11:36:36


http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

ah tah... é pq essa é uma classe do HV3...

troque o HibernateMockValidator pelo JSR303MockValidator que vai funcionar

[]'s

--
Caelum
www.caelum.com.br

renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

Perfeito Lucas, agora está tudo certo. MUITO OBRIGADO.

agora tenho como testar os controllers, ufa.

Porém adicionei como uma classe do meu projeto mesmo... futuramente, esta classe vai estar embutida no vraptor ?

abrassss

http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team