hibernate - 如何测试具有不可空集合的持久实体

标签 hibernate testing collections persistence dao

我正在学习如何编写测试用例,但遇到了一个问题。 我有一个带有 entityA 的持久性单元,它没有空的 B 集合。 应用程序工作流确保 B 永远不会为空并且包含已经持久化的实体。 (假设用户必须从他的地址簿中选择电子邮件地址)

现在我在测试持久化 A 时遇到了问题。 如果我创建 A,我必须创建一组 B (@NotNull)。 B 在测试数据库中不存在,所以我收到错误“对象引用未保存的 transient 实例”。

我正在使用 dbunit,所以问题是: 是否可以使用实体管理器并选择一组已从 xml 文件加载以进行测试的 B,然后将它们添加到 A 并持久化 A?对我来说,这听起来不像是单元测试。处理这种情况的最佳做法是什么

谢谢

最佳答案

我看不到任何其他可能性。 A 依赖于 B,因此您需要 Bs 才能持久化 A。由于在这种情况下无法进行模拟,因此您需要从数据库中获取 Bs。

关于hibernate - 如何测试具有不可空集合的持久实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7877589/

相关文章:

c# - 对复合集合进行排序

java - 具有 @ElementCollection 和 @CollectionTable 的 Hibernate 实体。 Hibernate在检索集合时将属性名称添加到SQL语句中

java - 用于此映射的 Hibernate 自定义 HQL

java - 我应该或者可以在 EJB 中使用 Spring

java - JPA-2.0 简单的 Select-Where 问题

php - 单元测试和普通测试有什么区别?

selenium - 使用 Selenium 识别相同的 Web 元素

c# - 为什么我的字符串在凯撒密码期间发生变化?

java - 集合 emptyList/singleton/singletonList/List/Set toArray

java - 获取这些键的值相等的键列表