我有一个使用EJB3和JPA的JEE5应用程序。例如我有一些豆与使用独立JPA测试EJB3/JPA可以吗?
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
我想写一些测试这些服务。我知道我可以使用像OpenEJB这样的可嵌入容器,但是由于JPA在Java SE中可用,我不知道我是否可以在测试中使用它? 当然我不会有所有的
@PersistenceContext, @PersistenceUnit, @TransactionAttribute
功能可用。所以我的问题是如果这是值得尝试的(手工交易管理等)?或者我应该使用嵌入式容器?我正在谈论集成测试(与真实的,但内存中的数据库),而不是嘲笑所有的东西。
编辑:因为我很新的嵌入式容器内测试
一两件事。是否有可能注入例如Mockito的模拟作为@EJB依赖于我的bean在测试?或者在这个设置中没有意义?
出于好奇,您希望避免在EJB容器中测试什么?注意所有符合Java EE 6的容器都实现了EJB 3.1嵌入式EJB容器API,而不仅仅是OpenEJB。 –
@David Blevins由于他被困在JEE5中,但是是的,这有点复杂。 – esej
@David,除了事实上我有JEE5(但我仍然可以使用OpenEJB),没有什么能够阻止我。我只是想知道,如果使用JPA从任何容器测试EJB是否有意义,如果它最初存在于容器中并使用它的功能(如事务,注入等)。 – grafthez