| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 14:30:37
|
fabiozoroastro
GUJ Master
![[Avatar]](/images/avatar/d28a3097fa7cf63ad01c4f328314e2f2.jpg)
Membro desde: 15/05/2006 16:23:01
Mensagens: 1262
Offline
|
Bom dia a todos.
Estou tentando criar uma classe para teste unitário. A classe que estarei testando utiliza DAOS carregados pelo listener do meu web.xml. Portanto, eu estou com dificuldades para que meus objetos daos sejam instanciados pelo spring sem q a aplicação seja startada.
Estou seguindo a documentação do Spring Testing, mas está ocorrendo o seguinte erro:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.aix2.test.ActInteressadosWebTest': Unsatisfied dependency expressed through bean property 'interesDAO': Set this property value or disable dependency checking for this bean.
Se alguém souber me ajudar....
Abraço.
|
[]'s
..."Apenas sorria!"
Twitter
Blog
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 16:04:24
|
fabiofalci
GUJ Master
![[Avatar]](/images/avatar/c359889a833e7612e0cff1dc69d272bc.png)
Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline
|
Olá.
Tem que se ligar em duas coisas. Se voce colocar uma propriedade e um set, o autowire
vai ser BY_TYPE
Se você não colocar o set, definir a propriedade como protected e chamar
Então vai ser autowire BY_NAME pelo nome da propriedade.
Tem que ver qual a situação que você está usando, e se o spring vai conseguir
injetar esse dependencia 'interesDAO'
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 16:29:13
|
fabiozoroastro
GUJ Master
![[Avatar]](/images/avatar/d28a3097fa7cf63ad01c4f328314e2f2.jpg)
Membro desde: 15/05/2006 16:23:01
Mensagens: 1262
Offline
|
Fabio,
obrigado pela resposta. Bom eu começei a trabalhar com o spring ontem, e eu ainda não domino ele, portanto eu simplesmente copiei da documentação exemplos pra fazer funcionar, e está funcionando, agora no teste unitário estou com esse problema. Agora se o autowire vai ser BY_TYPE ou BY_NAME eu não sei o que é. Será q com essas informações que te passei teria como eu realizer o teste??
Meu applicationContext.xml:
Abraço.
|
[]'s
..."Apenas sorria!"
Twitter
Blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 16:48:25
|
fabiofalci
GUJ Master
![[Avatar]](/images/avatar/c359889a833e7612e0cff1dc69d272bc.png)
Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline
|
BY_NAME = vai tentar achar um bean com o mesmo nome, exemplo o teu 'interesDAO'.
BY_TYPE = vai tentar achar qualquer bean do mesmo tipo, na verdade tem que ser unico,
do tipo da classe declarada, no teu caso o
com.aix.gen.dao.InteresDAO
Tu pode fazer o seguinte:
1. Verificar se está carregando o applicationContext.xml
2. Usar a propriedade do tipo 'interesDAO' que seja privada e tenha um set. Mas assim não pode ter outro bean da classe
com.aix.gen.dao.InteresDAO nos teus contextos
Pois ele vai fazer um BY_TYPE
3. Ou, colocar essa mesma propriedade protected, com o mesmo nome do bean, no caso 'interesDAO' ,
tirar o set, e chamar o setPopulateProtectedVariables.
Assim ele vai fazer um BY_NAME
Tanto o 2 quanto o 3 tem que funcionar se ele leu direito o teu applicationContext.xml
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 17:01:10
|
fabiozoroastro
GUJ Master
![[Avatar]](/images/avatar/d28a3097fa7cf63ad01c4f328314e2f2.jpg)
Membro desde: 15/05/2006 16:23:01
Mensagens: 1262
Offline
|
Fábio, valeu mesmo pela atenção. Vou continuar testando aqui, se eu conseguir eu te falo. Mto obrigado mais uma vez.
|
[]'s
..."Apenas sorria!"
Twitter
Blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 17:20:57
|
Rodrigo Carvalho Auler
Virtual Machine Man
Membro desde: 14/02/2003 15:59:17
Mensagens: 576
Localização: Rio de Janeiro
Offline
|
O Spring fornece algumas classes para facilitar testes como AbstractDependencyInjectionSpringContextTests que faz injeção de dependencia na própria classe de teste e AbstractTransactionalDataSourceSpringContextTests que faz roolback pra manter estado do banco quando você quer testar integração com o banco.
Mais detalhes em http://www.springframework.org/docs/reference/testing.html
[]'s
Rodrigo Auler
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 17:21:42
|
fabiozoroastro
GUJ Master
![[Avatar]](/images/avatar/d28a3097fa7cf63ad01c4f328314e2f2.jpg)
Membro desde: 15/05/2006 16:23:01
Mensagens: 1262
Offline
|
Fábio, bom, eu fiz como vc disse, e como está mostrando lah na documentação que falei no link:
E agora não está ocorrendo nenhum erro. Mas o meu interesDAO vem null. Eu acho que está carregando o meu xml certo sim. E na verdade o meu xml fica dentro de /WEB-INF/applicationContext.xml, mas como não encontrava nem F***. eu coloquei o arquivo na mesma pasta q a classe de Teste só pra eu testar mesmo..
Agluma dica?
Abraço.
|
[]'s
..."Apenas sorria!"
Twitter
Blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 17:40:25
|
fabiofalci
GUJ Master
![[Avatar]](/images/avatar/c359889a833e7612e0cff1dc69d272bc.png)
Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline
|
"applicationContext*"
Isso funciona?
Nunca usei, e fiz um test aqui e nao funcionou...
Tenta colocar o nome certinho.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 17:47:17
|
fabiozoroastro
GUJ Master
![[Avatar]](/images/avatar/d28a3097fa7cf63ad01c4f328314e2f2.jpg)
Membro desde: 15/05/2006 16:23:01
Mensagens: 1262
Offline
|
Oi Fabio.
Eu coloquei desta forma pq eu tb estava com problemas pra encontrar o applicationContext.xml, daí eu li que assim funcionava.
Olha só, o meu applicationContext.xml está dentro de WEB-INF. E se eu fizer:
Ocorre um erro de fileNotFoundException. Então, já que você falou, que do jeito: applicationContext* não funciona tb, eu vou continuar tentando aqui.. vlws!!!
|
[]'s
..."Apenas sorria!"
Twitter
Blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 17:55:09
|
fabiofalci
GUJ Master
![[Avatar]](/images/avatar/c359889a833e7612e0cff1dc69d272bc.png)
Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline
|
Tenta colocar na raiz do teu source
E carrega assim
String[] { "applicationContext.xml" };
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2007 18:01:05
|
fabiozoroastro
GUJ Master
![[Avatar]](/images/avatar/d28a3097fa7cf63ad01c4f328314e2f2.jpg)
Membro desde: 15/05/2006 16:23:01
Mensagens: 1262
Offline
|
Ahhh muleque. Muitissimo obrigado pela ajuda viu.
Funcionou certim. Agora soh falta fazer carregar o arquivo que está em web-inf/applicationContext.xml ao invéz de pegar do Source.
Mas já está funcionando já Fábio. Valeu de novo cara!
|
[]'s
..."Apenas sorria!"
Twitter
Blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/12/2008 10:51:18
|
fbeli
JavaChild
![[Avatar]](/images/avatar/8d74bf8864f7a59c6f96db6eb5a59289.jpg)
Membro desde: 09/08/2006 21:36:35
Mensagens: 126
Offline
|
Pra quem for usar com annotations
http://www.belisarioconsultoria.com.br/blog/?p=14
|
Fred Belisario
www.belisarioconsultoria.com.br
www.ydartes.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2009 23:15:52
|
thiagoprocaci
Thread.start()
Membro desde: 23/04/2009 23:00:37
Mensagens: 35
Offline
|
Segue um link interessante sobre o assunto.
Lá tem um exemplo bem completo sobre spring-test (usando anotação).
http://thiagoprocaci.blogspot.com/2009/04/o-teste-unitario-e-uma-modalidade-de.html
This message was edited 2 times. Last update was at 23/04/2009 23:19:59
|
Thiago Baesso Procaci
http://thiagoprocaci.blogspot.com/ |
|
|
 |
|
|