Я пытаюсь получить CDI (с открытым веб-бобами), работающий в рамках единичного теста с использованием Delta Spike (@RunWith(CdiTestRunner.class)
). Зависимость от впрыска работает нормально, но мой EntityManagerFactory всегда нуль:@PersistenceContext всегда null
public class EntityManagerProducer {
@PersistenceContext(unitName = "sbPersistenceUnit")
private EntityManagerFactory emf; //Always null
@Produces
public EntityManager create() {
return emf.createEntityManager();
}
public void close(@Disposes EntityManager em) {
if (em.isOpen()) {
em.close();
}
}
}
Я знаю, что мой persistence.xml
все в порядке, потому что я могу создать завод Session вручную:
EntityManagerFactory test = Persistence.createEntityManagerFactory("sbPersistenceUnit");
и все другие инъекции работают отлично. Кто-нибудь знает, чего не хватает?
Спасибо за ответ, я пошел по тому же пути, что и вы предлагали, и все работает. – StuPointerException