gpt4 book ai didi

java - 使用 Hibernate 进行测试 : Object dependence chain on persistence

转载 作者:行者123 更新时间:2023-12-02 00:47:25 25 4
gpt4 key购买 nike

我正在为 DAO 层准备单元测试,该层与实体对象交互以持久保存到数据库中。

技术 hibernate java 1.6JUnit

假设我想创建测试方法addEntityA()

为此,我创建了 EntityA 对象。现在的问题是 EntityA 是 EntityB 的子级。所以我必须在EntityA中指定EntityB的引用。仅当EntityB先被持久化时,EntityA才会被持久化到数据库中。因此,为了测试 EntityA 的持久性,我将测试 EntityB 的持久性。这样,它可能会导致实体链必须在实体 A 实际持久化进行测试之前被持久化。有人可能会争辩说我应该提供已经持久化的 EntityB 对象的引用。但问题是我不想让测试用例依赖于数据库中的测试而不是测试数据。我与 JMock 解决的问题有些相似,但不确定 Jmock 在这里如何以及是否有用?

如果问题不清楚,请告诉我?

最佳答案

不确定您的实际问题是什么,但在我看来,测试 Hibernate/JPA 功能的最佳方法是使用内存数据库和一个不错的测试工具。对于测试工具,我的意思是持久性相关类的基类,它将在每个测试(可能只是每个测试类)创建和删除内存数据库。测试工具还应该提供对测试期间使用的实体管理器或 session 的访问。如果您对配置文件使用过滤,则可以使用属性来切换数据库,以便也针对“真实”数据库进行测试。最后但并非最不重要的一点是,如果您的 EntityA 测试需要 EntityB,您将需要在测试设置或测试本身中创建 EntityB。查看 Hibernate Core 的测试工具,了解如何在那里完成测试。

关于java - 使用 Hibernate 进行测试 : Object dependence chain on persistence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4562235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com