我正在学习如何编写测试用例,但遇到了一个问题。 我有一个带有 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/