TesteNG em aplicações WEB

8 respostas
sandroalm.silva

estou tentando implantar o TestNG em minha aplicação web, até aí tudo bem, o problema é que quando eu chamo o método para ser testado,atravéz do plug-in do eclipse, os serviços não estão estanciados, CLARO NÉ? quem faz isso é o Spring e pelo que eu entendi o testeNG só faz pegar o .java e rodar.

trocando em miúdos , como que eu faço para que o testeNg rode realmente de dentro do meu tomcat? para que eu possa chamar realmente o meu método e possa testa-lo?

ps: estou fazendo isso porque preciso ter uma série de métodos que possam ser testados a qualquer hora por uma massa de dados sem precisar ir na interface.

8 Respostas

renzonuccitelli

duas opções:

  1. Usa a integração do Spring para testes
  2. Crie métodos set na suas classes para que vc faça a injeção de dependência na mão na hora de fazer os testes.

[]s

sandroalm.silva

obrigado pela resposta rápida!

vc pode me explicar melhor a opção 1?

a opção 2 é inviável porque vamos ter que dar manutenção na classe que chama o método sempre que uma nova depencia for adicionada

renzonuccitelli

Olhe no nessa seção do site do Spring.

Eu costumo fazer muito no braço mesmo. Minhas classes não ficam com essas infinitas dependências para dar manutenção.

Espero que o link te ajude.

[]s

sandroalm.silva

cara tem certeza que mandou o link certo ? esse link fala 3 linhas sobre isso ;/

renzonuccitelli

Hum, é mesmo. Eu li essa documentação tem um tempo lá, realmente não encontrei. O site do Spring é uma zona. Eu acho que é até de propósito, já que eles vendem treinamento.
Procurei no repo do maven, procure pelo Artefato spring-test no http://blog.springsource.com/2009/12/02/obtaining-spring-3-artifacts-with-maven/. Esse cara que faz a injeção pra vc. Vc coloca umas anotações no teste, indicando o contexto, e pronto.

[]s

sandroalm.silva

cara, valeu mesmo pela força! mas to meio confuso com isso ;/
a minha aplicação usa o ant, eu posso usar ela junto com o maven? (que é oque ele usa no exemplo que vc mandou)

se sim:
eu não to conseguindo compreender aonde eu configuro isso pra que a minha classe de teste use o mesmo xml que injeta as dependencias da aplicação ;/

renzonuccitelli

Baixe então os jars referentes ao spring test e procure pela documentação dessa parte do framework. Usar o maven seria mais fácil, pois ele já baixaria as dependências todas pra vcs.

[]s

sandroalm.silva

galera, deu certo aqui, só pra dar um feedback.
oque estava faltando era a minha classe herdar a org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests

assim

@ContextConfiguration(locations = { “/applicationContext.xml” })
public class ClienteServiceImplTeste extends AbstractTransactionalTestNGSpringContextTests

e o servico deve ser “anotado (?)” da seguinte forma

@Resource
private ClienteService clienteService;

essa anotação instacia por nome, atravéz do aplicationContext

obrigado !

Criado 15 de setembro de 2010
Ultima resposta 20 de set. de 2010
Respostas 8
Participantes 2