java - 可以用独立的 JPA 测试 EJB3/JPA 吗?

标签 java testing jpa ejb-3.0

我有一个使用 EJB3 和 JPA 的 JEE5 应用程序。例如,我有一些 bean

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)

我想为这些服务编写一些测试。我知道我可以使用像 OpenEJB 这样的可嵌入容器,但是由于 JPA 在 Java SE 中可用,我想知道我是否可以在测试中使用它? 我当然不会拥有所有

@PersistenceContext, @PersistenceUnit, @TransactionAttribute

可用的功能。所以我的问题是这是否值得尝试(手工制作的事务管理等)?还是应该使用嵌入式容器?我说的是集成测试(使用真实的内存数据库),而不是模拟周围的所有东西。

编辑:

还有一件事,因为我对在嵌入式容器中进行测试还很陌生。是否可以注入(inject),例如Mockito 的模拟作为对我的被测 bean 的 @EJB 依赖?还是在此设置中没有意义?

最佳答案

您可以使用 Java SE/JPA 测试很多东西。但是我们称之为集成测试的主要部分需要大量的努力来模拟事物,而有些如果没有 Arquillian 就无法实现。或类似的帮助。您是否希望将 EJB 事务功能等包含在您测试的内容中?如果是这样,您必须在尽可能接近生产的事务环境中实现测试。我强烈建议使用 ejb-testing-framework。

关于java - 可以用独立的 JPA 测试 EJB3/JPA 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10805834/

相关文章:

maven - ged 从 maven 命令行将测试用例作为参数传递

postgresql - 使用 JPA (EclipseLink) 和自定义转换器将 postgreSQL 枚举映射到 Java 枚举

java - 如何取消正在运行的 SQL 查询?

java - Hibernate 5 创建 ID 未标记为 IDENTITY 的表

java - Lucene 4.0 IndexWriter updateDocument for Numeric Term

Java JNA获取桌面项位置

ruby-on-rails - 如何在 coffeescript for rails 中检查测试环境?

java - 单选按钮的 isSelected() 问题

java - 如何使用SmartGWT 2.2绘制流程图?

testing - 应用程序 'indicate/numerate' 性能的最佳方法是什么?