Injeção do entityManager - teste

8 respostas
rodpuc

Tenho um método que utliza o entityManager na minha session:

public ExemploDTO montarExemploDTO(Long exemploId) { Exemplo exemplo = this.em.find(Exemplo.class, exemploId); return this.convertToDTO(exemplo); }

O meu teste instancía o entityManager e consegui persistir coisas numa boa, mas quando eu chamo o método (acima) da minha session o entityManager que está dentro dela está nulo.
Faz sentido, afinal de contas ninguém injetou ele lá.

A pergunta é: como injetar então?

8 Respostas

felipeguerra

rodpuc:

A pergunta é: como injetar então?

Usando um container?

rodpuc

Preciso fazer teste unitários.

felipeguerra

Cria um Entity Manager na mão e injeta no construtor das classes de teste.

rodpuc

O problema não é com as classes de teste, é com as sessions da aplicação real.

Criar construtores nessas classes pra receber o entitymanager é feio demais.

felipeguerra

rodpuc:
O problema não é com as classes de teste, é com as sessions da aplicação real.

Criar construtores nessas classes pra receber o entitymanager é feio demais.


Cara, são duas coisas diferentes, eu falei pra fazer isso na mão nos cenários de teste…outra coisa é se está null no ambiente de produção devido a um erro de configuração da JPA.

felipeguerra

Aproveitando, não faz sentido usar DTO da forma como colocou aqui…nem a nomenclatura.

rodpuc

ok amigo, acho q vc não entendeu o problema então agradeço mas aguardo alguém mais que queira tentar ajudar.

felipeguerra

Blz…talvez esse cara aqui ou esse aqui possam te ajudar.

Criado 2 de fevereiro de 2011
Ultima resposta 2 de fev. de 2011
Respostas 8
Participantes 2