java - 对对象图中的孤立对象进行单元测试

标签 java hibernate unit-testing mocking dbunit

我正在尝试为在旧数据库之上构建的 JPA 模型编写一些单元测试。我的模型中的一些对象图很大,我想找到一种编写单元测试的方法,以便我可以测试图中的单个对象(即实例化新对象、填充数据、持久化、刷新、比较刷新)对象成员与原始)隔离,而不必完全填充对象图。

我最初的想法是,我可以对被测对象中的任何引用对象使用模拟对象,但我认为这还不够,因为模式的引用完整性不允许由要插入的模拟对象而不填充数据。

我想我真正想要的是一种实例化被测试对象的方法,然后用我并不真正关心的数据填充对象图的其余部分,但仍然保持对象的引用完整性架构。

我知道 Java 单元测试有很多选择,包括 DbUnit、EasyMock、Unitils 等,但我不确定应该使用什么组合(或功能)来解决这个问题。有人能指出我正确的方向吗?也请随意批评我解决问题的方法;我可能需要重组它。

最佳答案

您可能想查看对象母体或测试数据生成器模式;

The TestDataBuilder pattern allows tests to specify only those parts of the objects that need to vary and use sensible defaults for those that are not relevant to the test.

另请参阅:

关于java - 对对象图中的孤立对象进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9320003/

相关文章:

unit-testing - 在.NET 2.0+中使用生成后事件执行带有MS Test的单元测试

Java 正则表达式卡在一条长绳上

java - Criteria API JPA 2 - JOIN 导致 MySQLSyntaxErrorException : You have an error in your SQL syntax

javascript - 如何在 Jest 中测试返回值?

java - HIbernate 多对多与 self 实体使用注释

java - 使用 Spring Data JPA 时是否可以在其中包含 "by"的字段名称?

Xcode 4,断点在 Mac OS 命令行工具的单元测试中不起作用

java - 安卓工作室 : Warning while I try to move Class to another package

java - java中串口如何 "echo off"

java - Java 和 C++ 相互对话时的问题