我试图让 CDI(带有 Open Web Beans)在使用 Delta Spike(@RunWith(CdiTestRunner.class)
)的单元测试中工作。依赖注入工作正常,但我的 EntityManagerFactory 始终为空:
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
的没问题,因为我可以手动创建会话工厂:
EntityManagerFactory test = Persistence.createEntityManagerFactory("sbPersistenceUnit");
并且所有其他注射都工作正常。有人知道可能缺少什么吗?