Teste Unitário + Spring  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
fabiozoroastro
GUJ Master
[Avatar]

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

fabiofalci
GUJ Master
[Avatar]

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'
[WWW] [MSN] [ICQ]
fabiozoroastro
GUJ Master
[Avatar]

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

fabiofalci
GUJ Master
[Avatar]

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
[WWW] [MSN] [ICQ]
fabiozoroastro
GUJ Master
[Avatar]

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

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
fabiozoroastro
GUJ Master
[Avatar]

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

fabiofalci
GUJ Master
[Avatar]

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.
[WWW] [MSN] [ICQ]
fabiozoroastro
GUJ Master
[Avatar]

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

fabiofalci
GUJ Master
[Avatar]

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" };
[WWW] [MSN] [ICQ]
fabiozoroastro
GUJ Master
[Avatar]

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

fbeli
JavaChild
[Avatar]

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
[WWW] [MSN]
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/
[Email] [WWW]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team