我应该如何测试我的JPA图层?

时间:2012-10-27 22:13:47

标签: java java-ee jpa

我使用Arquillian进行集成测试,我想测试使用JPA的存储库层。我尝试使用DBSetup,但它告诉我找不到Destination类,所以我想知道是否有其他方法来为每个测试设置数据库和测试数据?在测试数据库上没有启用自动增量是否正常,以便在从上次运行测试中删除数据后插入具有相同主键的行?

1 个答案:

答案 0 :(得分:0)

我建议您使用PROD数据的子集设置集成架构。我使用Oracle完成了这项工作,在我的存储库中保留了基本DMP(用于数据泵导入的模式的转储)文件。如果架构更改,我更新DMP。我的目标是让测试达到可以针对相同的DMP多次运行的程度。这样,每次运行测试时,我都不必使用CI工具重新导入DMP。

在每次测试中都会恢复您所做的更改。如果添加项目,请将其删除,并删除其所有历史数据。如果您修改记录,请将其更改回来。如果你这样做,你不需要重新

在您的测试中,您应该找到使用自动增量ID的记录。如果你这样做,未来的测试可能会改变id,因此无法再找到它们。始终通过自然键(例如first_name,last_name,middle_name或SSN)或将来始终存在的其他方法查找。

如果您的PROD架构必须更改,请先更改集成架构。针对它运行测试,然后更改您的PROD架构。

您还应该避免尽可能多地获得新会话。获得会议将非常昂贵。