我有一个使用 EJB3 和 JPA 的 JEE5 应用程序。例如,我有一些豆子
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
我想为这些服务编写一些测试。我知道我可以使用像 OpenEJB 这样的可嵌入容器,但是由于 JPA 在 Java SE 中可用,我想知道我是否可以在测试中使用它?当然我不会拥有所有
@PersistenceContext, @PersistenceUnit, @TransactionAttribute
可用的功能。所以我的问题是这是否值得尝试(手工交易管理等)?还是我应该使用嵌入式容器?我说的是集成测试(使用真实的内存数据库),而不是模拟周围的所有东西。
编辑:
还有一件事,因为我对在嵌入式容器中进行测试还很陌生。是否可以将例如 Mockito 的模拟作为 @EJB 依赖项注入到我的测试 bean 中?或者在这个设置中可能没有意义?