TesteNG em aplicações WEB

8 respostas
S

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

R

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

S

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

R

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

S

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

R

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

S

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 ;/

R

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

S

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