我创建了一个实体,其中包含private int id;
字段。现在,我想编写一个单元测试,它只是确认它是在持久化上下文中添加的,并且它有一个id。但是我应该检查什么?该字段默认初始化为0,因为我不使用包装类Integer(我不会),我不知道如何确认它。
答案 0 :(得分:0)
测试不会是单元测试,因为您要确保有人在您的实体上调用setId()
。在这种情况下,单元测试将验证是否为模拟entityManager.persist(myEntity)
调用了entityManager
。
据我了解,您希望对此进行集成测试。试试Arquillian,一个相当不错的集成测试框架。它可以在JUnit框架中使用。您可以将EJB和模拟EntityManager
注入到JUnit中,并维护一个内存中的数据库,您可以将其作为例如。运行JPA查询。
答案 1 :(得分:0)
您可以使用返回已保存对象的entityManager.persist(entity)
而不是entityManager.merge(entity)
。您可以从返回的对象获取id并检查您想要的任何内容。