Bonjour

J'ai un projet qui fonctionne mais qui ne contient pas de tests et ça c'est bad.

J'ai donc un bean qui contient du code métier ce bean possède un membre qui reçoit par injection un DAO qui lui reçoit par injection @PersistenceContext
un EntityManager.

je cherche à tester le code métier pas le DAO.
pour cela il faut que je crée un bean métier mais pour le moment impossible de le créer car au moment où weld cherche à injecter le DAO il crée l'instance et ne trouve pas d'EntityManager.

J'ai pourtant un provider qui fonctionne vu que l'application marche.
J'ai une base de test qui fonction puisque si je fait un test junit dans lequel j'injecte l'EM je peut faire des tests persistance.

en résumé ma situation est la suivante. j'utilise cdi-unit
test junit de EM OK (injecton de l'EM dans le test)
test junit du DAO KO (injection du DAO dans le Test => injection de l'EM dans le DAO qui ne trouve pas default alors que le persistant context est nommé) // mais celui-là ne m'intéresse pas
test junit du bean métier KO (injection du Bean dans le Test => injection du DAO dans le bean => injection de l'EM dans le DAO qui ne trouve pas default) et c'est ce test là qui est important.

Je n'ai pas de Spring le code de l'application n'utilise que les JSR standard JEE8
JSR-369, JSR-365, JSR-380, JSR-372, JSR-919, JSR-370, JSR-374, JSR-367, JSR-250, JSR-375, JSR-338

Comment fait vous vos tests ?
J'ai trouvé des exemples qui testent l'application complète en instanciant un serveur à la volé alors que je veux un test unitaire et ne tester qu'une fonction d'une seule classe.

Merci A+JYT