如何在JUnit测试中初始化EJB的EntityManager?

时间:2012-02-02 13:05:59

标签: hibernate junit ejb entitymanager

我正在尝试为具有注入的EntityManager的无状态会话bean编写JUnit测试:

@Stateless
public class MyServiceBean implements MyService, ... {
@PersistenceContext
    private EntityManager em;
    ....

当然,在没有做任何事情的情况下,em在测试流程中仍然是空的......

测试应该独立运行(不在Java EE容器中)。

我该怎么办? (简单的解决方案将非常受欢迎: - )

2 个答案:

答案 0 :(得分:3)

简单的答案是不要那样做,如果你想在实际工作应用程序中注入持久性上下文,请使用嵌入式/外部服务器进行测试。有关测试EJB和JPA的更多信息,请访问:Best current framework for unit testing EJB3 / JPA

答案 1 :(得分:0)

如果你想测试你的数据访问逻辑(标准代码,jpql查询等),我要做的就是使用HSQLDB。无需模拟EntityManager或拥有Java EE容器,它可以很好地与构建过程集成。