Testando a camada Serviço com Spring - Hibernate - Struts 1x!

4 respostas
J

Galera, bom dia, preciso de um help…

Estou tentando testar a camada de serviço, recebendo a injeção do meu Dao via Spring…

MAs quando ele lê meu “action-servlet.xml” dá erro, alguem pode dar um help de como faço para testar o Spring com Struts1,

Eu injeto o EntityManager no Dao, injeto o Dao no Serviço e injeto o serviço na minha Action…

4 Respostas

Jair_Rillo_Junior

Está usando o JUnit para fazer testes unitários? Se sim, você não vai ler recursos externos pelo JUnit (no caso o action-servlet.xml), você irá simplesmente injetar manualmente os objetos (DAO, EntityManager) manualmente pelo JUnit para poder testa-lo.

Caso você esteja tentando testar a Action do Struts 1, então seu problema é um pouco pior, pois você irá precisar de um artificio em separado para simular os objetos (ActionForm, HttpServletreqeust, response) do Struts 1. Aconselho a olhar o Cactus.

J

Manchester, Estou usando o Junit para testar a camada de serviço, Como injeto manualmente o EntityManager e o Dao na classe de teste, pegarei a sessão do Entity Manager em um metodo estático, é isso ? tipo JPAUtil.getEntityMAnager(), algo assim ?

Jair_Rillo_Junior

Você irá testar a camada de serviço, porém, mesmo se sua camada de serviço faz uso de banco de dados (através de um DAO), você não vai de fato utilizar o banco de dados para os testes unitários.

Ao invés de utilizar o EntityManager/DAO real, você deve utilizar um Mock Object para fazer a simulação dele. (No fórum já foi discutido isso várias vezes).

J

Manchester, sobre os testes unitários agradeçoa a sua ajuda, eu entendo que os testes devewm seguir o padrao, sendo:

Camada Dao = Dbunit
Camada Serviço = Usar MockOjects simulando a conexao falsa

Acho que nao me expressei bem, oque realmente preciso é testar todo esse conjunto funcionando, o EntityManager, o Dao, o Serviço, tudo isso na action.
Precisaria apenad e uma classe de teste no junit que captura se a configuração do Spring e realiza-se o teste, integrando tudo, não preciso realizar o teste pela action, mas preciso do objeto injetado na action,ser injetado na minha classe de teste…

grato

Criado 3 de dezembro de 2007
Ultima resposta 3 de dez. de 2007
Respostas 4
Participantes 2