Java 如何签入在持久性上下文中添加的实体的单元测试

Java 如何签入在持久性上下文中添加的实体的单元测试,java,jakarta-ee,jpa,junit,Java,Jakarta Ee,Jpa,Junit,我已经创建了一个实体,在其他字段中有一个私有int id字段。现在,我想写一个单元测试,它只是确认它被添加到持久性上下文中,并且它得到了一个id。但是我应该检查什么呢?该字段默认初始化为0,由于我不使用包装类整数(我不会使用),我不知道如何确认它。该测试不会是单元测试,因为您希望确保有人在您的实体上调用setId()。在这种情况下,单元测试将验证是否为mockedentityManager调用了entityManager.persist(myEntity) 据我所知,您希望对此进行集成测试。试试

我已经创建了一个实体,在其他字段中有一个
私有int id字段。现在,我想写一个单元测试,它只是确认它被添加到持久性上下文中,并且它得到了一个id。但是我应该检查什么呢?该字段默认初始化为0,由于我不使用包装类整数(我不会使用),我不知道如何确认它。

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

据我所知,您希望对此进行集成测试。试试,一个相当好的集成测试框架。它可以在JUnit框架中使用。您可以将EJB和mocked
EntityManager
注入JUnit,它维护一个内存中的DB,您可以对其运行JPA查询


您可以使用返回保存对象的
entityManager.merge(entity)
而不是
entityManager.persist(entity)
。您可以从返回的对象中获取id,并根据需要进行检查