如何在持久化上下文中检入单元测试中添加的实体

时间:2012-10-27 12:58:16

标签: java java-ee jpa junit

我创建了一个实体,其中包含private int id;字段。现在,我想编写一个单元测试,它只是确认它是在持久化上下文中添加的,并且它有一个id。但是我应该检查什么?该字段默认初始化为0,因为我不使用包装类Integer(我不会),我不知道如何确认它。

2 个答案:

答案 0 :(得分:0)

测试不会是单元测试,因为您要确保有人在您的实体上调用setId()。在这种情况下,单元测试将验证是否为模拟entityManager.persist(myEntity)调用了entityManager

据我了解,您希望对此进行集成测试。试试Arquillian,一个相当不错的集成测试框架。它可以在JUnit框架中使用。您可以将EJB和模拟EntityManager注入到JUnit中,并维护一个内存中的数据库,您可以将其作为例如。运行JPA查询。

Arquillian reference guide

答案 1 :(得分:0)

您可以使用返回已保存对象的entityManager.persist(entity)而不是entityManager.merge(entity)。您可以从返回的对象获取id并检查您想要的任何内容。