Gostaria de configurar um ambiente de testes para a camada de negócio de meu aplicativo que usa EJB 3.1 e JBoss 7.1.1.
Uso JUnit para criar testes de métodos simples, que não acessam o banco ou dependem de CDI. Gostaria de colocar todos os métodos dos EJB em testes unitários, inclusive os que acessam o banco para incluir/excluir pesquisar entidades.
Encontrei alguns recursos na internet, alguns recomendam o uso do Cactus, outros usam OpenEJB, Mock Objects, etc.
Alguém já criou um ambiente de testes parecido com esse que preciso? Seria legal ouvir a experiência de vocês.
Encontrei o Arquillian, da JBoss. Me pareceu ser a ferramenta mais moderna para o que eu preciso.
Ela possibilita testar em containers embedded, managed e remotos. Na documentação deles (que é muito boa, aliás), tem exemplos de configuração usando JBoss, Glassfish e Weld.
Possibilita debug facilmente, testar persistência, criar diferente profiles de teste no POM.
Eu li isso em um livro, depois vou até fazer um post. [=
F
felipe_gdr
Legal, parece ser mais “lightweight”.
Será que essa modalidade tem flexibilidade de teste de JPA, por exemplo, posso setar um persistence.xml que aponta para um banco de teste (tipo um Derby).
H
Hebert_Coelho
felipe_gdr:
Legal, parece ser mais “lightweight”.
Será que essa modalidade tem flexibilidade de teste de JPA, por exemplo, posso setar um persistence.xml que aponta para um banco de teste (tipo um Derby).
Pelo que li ele simula um container EJB lite. Então você terá EJB local, transações e algumas outras coisinhas. [=
Ele deve suportar o JPA. [=
Se não, vai ser triste… muito triste. MAhuahuah
H
Hebert_Coelho
Mas estava pensando, bastaria você no teste buscar um EJB e desse EJB chamar o outro que sua transação espalharia.
Desse modo, se seus métodos estiverem Required ele pega as transações criadas em quem originou a chamada. [=
F
felipe_gdr
Pois é, mesmo sendo um container “lite”, não deixa de ser um container EJB, e como tal, deve suportar a injeção de EntityManagers, controle de transação, etc.
H
Hebert_Coelho
felipe_gdr:
Pois é, mesmo sendo um container “lite”, não deixa de ser um container EJB, e como tal, deve suportar a injeção de EntityManagers, controle de transação, etc.
Que tal você fazer o teste e depois compartilhar? :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
H
Hebert_Coelho
Na boa, só não faço por um motivo... vou te mostrar o q está em meu copiar colar agora:
É rapaz... to fazendo a versão 2.0 do meu framework open source para criteria, e o OpenJPA tá me fazendo arrancar os cabelos.
Acho que semana ta pronto com 100% de cobertura! >= )
F
felipe_gdr
hahahaha, pô Hebert, eu tô me divertindo com o Arquillian aqui. Você que sugeriu EJBContainer!!!
F
felipe_gdr
Show de bola! Como chama esse framework?
H
Hebert_Coelho
felipe_gdr:
hahahaha, pô Hebert, eu tô me divertindo com o Arquillian aqui. Você que sugeriu EJBContainer!!! :)
Ele é testado com Hibernate, EclipseLink e OpenJPA (que tá me tirando os cabelos).
A versão exibida aí é a 1.0.
Quando vier a 2.0 vai ser mega boladona plus tropa de elite ++. O.o
A API está bem mais simples. [=
H
Hebert_Coelho
Ufa.
O OpenJPA é muito chato! -_-’’
Consegui finalizar tudo, olha a imagem em anexo. [=
Agora é abrir um bug no Hibernate que descobri, no OpenJPA também achei bug e o do EclipseLink eu já tenho um bug aberto, mas o povo ainda não resolveu. =/