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

时间:2012-11-16 09:09:08

标签: java unit-testing testing

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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