如何对数据库访问/ORM 实体进行单元测试



通常在单元测试中,使用对象的模拟;但是应该如何为JPA实体编写单元测试,例如,如果EntityManager被模拟了?实际测试的是什么?

编辑:假设我想测试一个对象是否持久化良好;在生产代码中,为了持久化,容器提供的EntityManager是可用的。对于这种类型的测试,应该模拟此 EntityManager,它应该是用于测试的资源本地管理器,还是应该在容器中运行测试(测试运行从 Java 代码触发)?

实体表示数据。它可以有一些方法(除了getters和setters),可以像任何其他方法一样进行单元测试。

如果你想测试实体是否可以持久化并从数据库中检索(即它的映射是否正确定义),那么你不应该模拟任何东西。有一个测试,该测试使用真实的实体管理器和填充了测试数据的数据库,并尝试保留和/或检索实体的实例。

在进行此类测试之前,您可以使用 DbSetup(是的,此处为自我推销)用测试数据填充数据库。

最新更新