0

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

4

2 回答 2

0

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

于 2012-10-27T13:47:45.380 回答
0

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

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

Arquillian 参考指南

于 2012-10-27T13:34:51.647 回答