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

Hag*_*ski 6 junit hibernate ejb entitymanager

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

@Stateless
public class MyServiceBean implements MyService, ... {
@PersistenceContext
    private EntityManager em;
    ....
Run Code Online (Sandbox Code Playgroud)

当然,如果不做任何事情,em在测试流程中仍然为空......

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

请问我该怎么做?(简单的解决方案将受到高度赞赏:-)

Kri*_*ris 3

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