我刚刚实现了一些实体和一些支持豆子。但是,我想知道是否有某种方法可以在应用程序服务器上测试域模型或实体,在本例中为 Glassfish。
例如,当我添加一个新实体时,我想通过写入和读取实体来测试持久性是否正确,并可能执行一些操作。
我已经将 JUnit 用于标准应用程序,但现在部署在应用程序服务器上的 Web 应用程序让我感到困惑。
处理这个问题的标准方法是什么。我听说过一些关于JSFUnit的事情,但我没有看到任何关于Glassfish的例子(也许没关系?
附言。我的项目涉及 EJB,我认为这需要在嵌入式应用程序服务器或托管服务器下进行测试?
你能帮我了解处理这种事情的最佳实践是什么吗?
此致敬意
最好是你想要容器外测试,这是很有可能的,因为 JPA 在容器之外工作。只需设置一个新的持久性.xml专为测试而设计,配置为仅使用 Java SE,即可测试实体。您必须自己设置实体管理器实例,因为您不在容器内。要么让你的测试类继承你正在测试的 EJB,并将受保护的 EntityManager 实例设置为来自 EntityManagerFactory 的实例,要么在每个 DAO EJB 中向你的 EntityManager 添加一个资源库。然后你应该准备好了。不过,您必须手动处理事务,对于大多数调用,这应该可以以相同的方式进行,因为您可能希望回滚每个测试的更改。