Testes Integrados em sistemas Back-end  XML
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Autor Mensagem
lavh
GUJ Master

Membro desde: 30/07/2006 16:09:55
Mensagens: 1311
Offline

Tenho um sistema totalmente back-end que expõe beans EJB para seus clientes.
Existem algumas integrações dentro deste sistema, como por exemplo um bean EJB
chamar um outro bean EJB em outro módulo.

Gostaria de saber como poderia fazer testes integrados deste sistema simulando o
comportamento do container EJB, mas "mockando" a camada de DAO.

Gostaria de testar o Bean A chamando o Bean B, inclusive vendo se o Bean B cria uma nova
transação ou mantém a transação do Bean A, porém, eu não quero usar o banco de dados, porque
fazer teste usando banco de dados é um saco, ainda mais com o tamanho da nossa base aqui.

Alguém já precisou fazer algo parecido? Aceito sugestões!

[]'s
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

lavh wrote:

Gostaria de saber como poderia fazer testes integrados deste sistema simulando o
comportamento do container EJB, mas "mockando" a camada de DAO.

[]'s


Pq vc não usa o container ao invés de simulá-lo!?

Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
lavh
GUJ Master

Membro desde: 30/07/2006 16:09:55
Mensagens: 1311
Offline

Taz wrote:
lavh wrote:

Gostaria de saber como poderia fazer testes integrados deste sistema simulando o
comportamento do container EJB, mas "mockando" a camada de DAO.

[]'s


Pq vc não usa o container ao invés de simulá-lo!?


Porque eu queria poder executar estes testes sem a necessidade de ter um ambiente com servidor de aplicação up

Os testes poderiam ser executados via maven por exemplo.
cmoscoso
Virtual Machine Man

Membro desde: 23/10/2007 10:08:29
Mensagens: 687
Offline

lavh wrote:
Taz wrote:
lavh wrote:

Gostaria de saber como poderia fazer testes integrados deste sistema simulando o
comportamento do container EJB, mas "mockando" a camada de DAO.

[]'s


Pq vc não usa o container ao invés de simulá-lo!?


Porque eu queria poder executar estes testes sem a necessidade de ter um ambiente com servidor de aplicação up

Os testes poderiam ser executados via maven por exemplo.


Ué, mas EJBs são gerenciados pélo container, e sem ele você teria que mockar os EJBs tb.
[Email]
lavh
GUJ Master

Membro desde: 30/07/2006 16:09:55
Mensagens: 1311
Offline

cmoscoso wrote:
lavh wrote:
Taz wrote:
lavh wrote:

Gostaria de saber como poderia fazer testes integrados deste sistema simulando o
comportamento do container EJB, mas "mockando" a camada de DAO.

[]'s


Pq vc não usa o container ao invés de simulá-lo!?


Porque eu queria poder executar estes testes sem a necessidade de ter um ambiente com servidor de aplicação up

Os testes poderiam ser executados via maven por exemplo.


Ué, mas EJBs são gerenciados pélo container, e sem ele você teria que mockar os EJBs tb.


Então, foi isso que eu perguntei! Eu vi que tem um EJBMock, mas parece que o projeto foi descontinuado.

Eu vou usar JBoss Embarcado (http://www.guj.com.br/posts/list/79143.java) mesmo + EasyMock para mockar os meus DAOs e eu injeto eles na hora do teste via spring e sucesso.

Valeu Pessoal.
Adolfo Rodrigues
Java Ninja
[Avatar]

Membro desde: 18/04/2007 20:02:52
Mensagens: 270
Localização: Sampa
Offline

Tente dar uma olhada nos projetos Cactus e DBUnit

jakarta.apache.org/cactus/index.html
www.dbunit.org/

Edited: faltaram as tags URL

This message was edited 1 time. Last update was at 29/05/2008 17:17:18


http://www.adolfosousa.com.br/blog
[WWW] [MSN]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

lavh wrote:

Porque eu queria poder executar estes testes sem a necessidade de ter um ambiente com servidor de aplicação up

Os testes poderiam ser executados via maven por exemplo.


E pq o Maven te impediria de fazer os testes dentro do AS?

This message was edited 1 time. Last update was at 30/05/2008 08:59:41


Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
Rubem Azenha
GUJ Master
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline

Para testes integrados, o mais correto não seria rodar no AS mesmo, sem mockar nada? Com um ambiente semelhante ao ambiente de produção?



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

Rubem Azenha wrote:Para testes integrados, o mais correto não seria rodar no AS mesmo, sem mockar nada? Com um ambiente semelhante ao ambiente de produção?


Sim, é o que eu tb acho. E o teste dentro do container ainda simplifica bastante sua vida.

Hoje eu uso Maven + plugins do Maven + JBoss AS + JBoss ESB + testes de integração em componentes tranquilamente.

This message was edited 1 time. Last update was at 02/06/2008 09:39:36


Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
Alessandro Lazarotti
Virtual Machine Man
[Avatar]

Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline

Acho que "Teste de integração" é um termo muito amplo para decidir onde rodar isso ou aquilo.

Eu poderia testar a integração de duas classes de negócio, onde nenhuma das duas utilizam recursos de um AS ou banco de dados. Para tal não faz sentido roda-lo no ambiente servidor.

Para testes de aceitação, estes sim devem rodar sem dúvida em um ambiente o mais próximo possível da produção: - em um servidor de aplicação, conexões de banco, filas de mensagens e etc.

This message was edited 1 time. Last update was at 01/07/2008 10:25:05


... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/

[Email] [MSN]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

Lezinho wrote:
Eu poderia testar a integração de duas classes de negócio, onde nenhuma das duas utilizam recursos de um AS ou banco de dados. Para tal não faz sentido roda-lo no ambiente servidor.



No contexto do nosso amigo acho melhor a "integração" dentro do servidor. Lembre-se que ele precisa testar transações.

Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
Alessandro Lazarotti
Virtual Machine Man
[Avatar]

Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline

Depende. Eu faço testes funcionais, com transações, em Façades de Seam Component com o Jboss MC (embeddable) e realizo os testes de aceitação no servidor.

... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/

[Email] [MSN]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

Lezinho wrote:Depende. Eu faço testes funcionais, com transações, em Façades de Seam Component com o Jboss MC (embeddable) e realizo os testes de aceitação no servidor.


Oras, e desde quando o JBoss 5 (MC de MicroContainer para os curiosos) deixou de ser servidor/container?

Já discutimos testes usando MC por aqui .... http://www.guj.com.br/posts/list/81757.java

Não vejo diferença entre um teste "funcional" no 4.2.2 ou no 5 (20 segundos?).

Além disso, prefiro testar com as versões/configurações idênticas aos ambientes de homologação/produção ...

Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
Alessandro Lazarotti
Virtual Machine Man
[Avatar]

Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline

Para esclarecer, o Jboss MicroContanier é um servidor tão quanto o JBoss Microkernel foi ... ou seja, não é. Ele é usado pelo App Server, mas não é um. Na verdade ele se assemelha muito mais a Spring do que a JBoss. O problema é o pé que o projeto esta hoje. Ainda esta lento (embora na minha máquina ele não demore mais de 8 segundos), e alguns bugs realmente atrapalham.

Mais detalhes:
http://www.jboss.org/file-access/default/members/jbossmc/freezone/docs/2.0.x/userGuide/overview.html
http://www.jboss.org/jbossmc/

Eu não acho errado fazer os testes no ambiente similar a produção ... depende do que esta sendo testado e sua granulariedade.

This message was edited 1 time. Last update was at 02/07/2008 09:35:08


... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/

[Email] [MSN]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

Lezinho wrote:Para esclarecer, o Jboss MicroContanier é um servidor tão quanto o JBoss Microkernel foi ... ou seja, não é.




Confundiu...

Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
 
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Ir para:   
Powered by JForum 2.1.8 © JForum Team