Bonjour,
Je suis confrontée à un problème sur les tests unitaires des EJB avec Junit4 en utilisant un EJBContainer.
L’injection du POJO (via l'annotation @Inject ) dans l'EJB que je suis en train de tester ne fonctionne pas (ça me renvoie un 'null').
Mon EJB à tester :
Class Personne ( Simple POJO ):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @Stateless public class HelloWorld { @Inject // Personne personne; // null quand je récupère mon EJB via un lookup public String hello(String message){ return personne.getNom()+"__"+message; } }
Ma classe Test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public class Personne { private String nom; public Personne() { this.nom = "myName"; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } }Mon EJB est correctement récupéré via le lookup, mais l'injection de la classe Personne dans cet EJB ne se fait pas. Je n'arrive pas à trouver pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class HelloWorldTestTest { public HelloWorldTestTest() { } @Test public void testHello() throws Exception { EJBContainer container = javax.ejb.embeddable.EJBContainer.createEJBContainer(props); HelloWorld instance = (HelloWorld)container.getContext().lookup("java:global/classes/HelloWorld"); System.out.println( instance..hello("Coucou")); // <------- Null Exception container.close(); } }
Quelqu'un saurait-il m'indiquer comment faire ?
Merci d'avance pour votre aide.
Partager