Pessoal estou iniciando nas práticas do TDD já li bastante a respeito.
Mas estou com uma dúvida, como diferenciar meu persistence.xml de teste do de produção.
Estava querendo usar o HSQLDB para os testes.
Estou utilizando o eclipse.
[RESOLVIDO]Testes com EJB e JPA, como proceder?
11 Respostas
O HSQLDB é certamente uma boa opção.
mas vc pode usar também um banco como Postgresql, oracle, etc.
O persistente.xml do contexto de teste pode ser diferente do de produção.
Basta colocar um em: test e o outro no main, se vc usar o maven, por exemplo.
O HSQLDB é certamente uma boa opção.mas vc pode usar também um banco como Postgresql, oracle, etc.
O persistente.xml do contexto de teste pode ser diferente do de produção.
Basta colocar um em: test e o outro no main, se vc usar o maven, por exemplo.
Eu não estou usando o maven ainda, por enquanto queria fazer sem maven.
Como seria sem o auxílio do maven?Eu tenho 2 source folder src/main e src/test.
Você terá que bolar um jeito de alterar o entityManager na hora do teste.
Aqui mostra um jeito: JUnit com HSQLDB, JPA e Hibernate.
Eu prefiro HSQLD a um banco como mysql, postgres… O HSQLDB tem uma performance melhor nesses casos de testes. Sem falar que você pode criar e apagar os dados da memória a cada teste.
Você terá que bolar um jeito de alterar o entityManager na hora do teste.Aqui mostra um jeito: JUnit com HSQLDB, JPA e Hibernate.
Eu prefiro HSQLD a um banco como mysql, postgres… O HSQLDB tem uma performance melhor nesses casos de testes. Sem falar que você pode criar e apagar os dados da memória a cada teste.
Seria uma opção usar do jeito apresentado, mas fiquei curioso com a utilização de 2 arquivos, só não sei como faria distinção entre eles.
Estou usando lookup para buscar meus beans.
Aproveitar para te parabenizar pelo blog, ótimo material, está sendo de muita valia para aumentar meus conhecimentos.
Opa! Valeu! :oops: :oops: :oops:Você terá que bolar um jeito de alterar o entityManager na hora do teste.Aqui mostra um jeito: JUnit com HSQLDB, JPA e Hibernate.
Eu prefiro HSQLD a um banco como mysql, postgres… O HSQLDB tem uma performance melhor nesses casos de testes. Sem falar que você pode criar e apagar os dados da memória a cada teste.
Seria uma opção usar do jeito apresentado, mas fiquei curioso com a utilização de 2 arquivos, só não sei como faria distinção entre eles.
Estou usando lookup para buscar meus beans.
Aproveitar para te parabenizar pelo blog, ótimo material, está sendo de muita valia para aumentar meus conhecimentos.
Usando da maneira que você descreveu no no blog, o meu EntityManager injetado pelo EJB ficaria sem uso.Por isso eu gostaria de insistir no existência de 2 arquivos de persistência.
Apenas para aproveitar a estrutura sem modificações nas classes.
Resolvido pessoal, pesquisei um pouco sobre ejb3unit e consegui fazer o que queria e melhor ainda ele usa HSQLDB por baixo e cria o bando em memória mesmo, faz a injeção de dependência como se fosse o container EJB e pega meu persistence.xml e ler só as classes declaradas para criar o bando em memória, então nem precisei de 2 arquivos.A princípio estou carregando o bando por um arquivo csv.
Obrigado pela atenção pessoal.
Usando da maneira que você descreveu no no blog, o meu EntityManager injetado pelo EJB ficaria sem uso.Por isso eu gostaria de insistir no existência de 2 arquivos de persistência.Ficaria unitilizado em casos de teste. Quando a aplicação executar em ambiente de produção a injeção funcionará do mesmo modo.
Apenas para aproveitar a estrutura sem modificações nas classes.
Usando da maneira que você descreveu no no blog, o meu EntityManager injetado pelo EJB ficaria sem uso.Por isso eu gostaria de insistir no existência de 2 arquivos de persistência.Ficaria unitilizado em casos de teste. Quando a aplicação executar em ambiente de produção a injeção funcionará do mesmo modo.
Apenas para aproveitar a estrutura sem modificações nas classes.
Sim com certeza funcionará, é uma abordagem muito boa e seria uma opção se eu não encontrasse o ejb3unit.
Você já usou ejb3unit?Como tem mais experiência, qual a sua opinião sobre ele?
Resolvido pessoal, pesquisei um pouco sobre ejb3unit e consegui fazer o que queria e melhor ainda ele usa HSQLDB por baixo e cria o bando em memória mesmo, faz a injeção de dependência como se fosse o container EJB e pega meu persistence.xml e ler só as classes declaradas para criar o bando em memória, então nem precisei de 2 arquivos.A princípio estou carregando o bando por um arquivo csv.Bom saber! [=
Obrigado pela atenção pessoal.
Sim com certeza funcionará, é uma abordagem muito boa e seria uma opção se eu não encontrasse o ejb3unit.Nunca ouvi falar.
Você já usou ejb3unit?Como tem mais experiência, qual a sua opinião sobre ele?
Sei que o próprio EJB3 tem um modo de levantar standalone usando uma implementação, mas eu esqueci onde eu li sobre isso. =/