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()
。在这种情况下,单元测试将验证是否为mockedentityManager
调用了entityManager.persist(myEntity)
据我所知,您希望对此进行集成测试。试试,一个相当好的集成测试框架。它可以在JUnit框架中使用。您可以将EJB和mockedEntityManager
注入JUnit,它维护一个内存中的DB,您可以对其运行JPA查询
您可以使用返回保存对象的entityManager.merge(entity)
而不是entityManager.persist(entity)
。您可以从返回的对象中获取id,并根据需要进行检查