【发布时间】:2010-10-27 02:28:53
【问题描述】:
我想模拟一个 ResultSet。严重地。 我正在重构一大段复杂的代码,它从 ResultSet 解析数据,并且我希望我的代码行为相同。所以,我需要为正在重构的部分编写一个单元测试,以便能够对此进行测试。
谷歌搜索后,我想出了两个想法:
- 使用 EasyMock,编写 looooong 模拟序列。非常糟糕的解决方案:难以添加初始数据、难以更改数据、大量的测试调试。
- 使用 Apache Derby 或 HSQLDB 创建内存数据库,从文件或字符串数组中填充,使用一些神奇的 InMemoryDBUtils.query(sql) 进行查询。然后使用该结果集。不幸的是,我没有找到任何神奇的 InMemoryDBUtils 来快速编写测试:-)。 IBM 文章“使用 Derby 进行持久性的隔离单元测试”似乎正好符合我的需要,不过...
第二种方法看起来更简单,更容易支持。
对于创建这样的模拟,您有什么建议? (尽管有医生,当然:-)?我错过了眉毛一些灵丹妙药吗?可能,DBUnit 就是这个工具?
【问题讨论】:
标签: java unit-testing jdbc mocking resultset