首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将“真实”场景转储到单元测试中

将“真实”场景转储到单元测试中
EN

Stack Overflow用户
提问于 2009-09-03 22:23:53
回答 4查看 431关注 0票数 0

我目前正在调试一些相当复杂的持久化代码,并试图在此期间增加测试覆盖率。

我在产品代码中发现的一些bug需要很大的、非常具体的对象图才能重现。

虽然从技术上讲,我可以坐下来在我的测试中写出大量的实例化代码来重现特定的场景,但我想知道是否有工具可以为我做这件事?

我想我特别希望能够在我的调试器框架中转储一个对象(可能是xml),然后使用一些东西加载到XML中并创建用于单元测试的对象图(例如,xStream等)。

有没有人能推荐在这种情况下有用的工具或技术?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-03 22:34:17

我已经使用ObjectOutputStream完成了这类工作,但是XML应该可以很好地工作。您需要使用可序列化的树。您也可以尝试使用JAXB或xStream等。我认为这很简单。如果您的代码中有构建结构的位置,那么可以在其中插入序列化代码,并将所有内容写到文件中。然后,删除插入的代码。然后,对于测试,加载XML。您可以将该文件放入类路径中的某个位置。我通常使用资源或配置目录,并使用Thread.currentThread().getContextClassLoader().getResourceAsStream(name).获取流然后反序列化这些东西,你就可以开始工作了。

票数 2
EN

Stack Overflow用户

发布于 2009-09-03 22:45:33

XStream在这里很有用。它允许你将几乎任何POJO转储到XML或从XML转储,而不必实现接口/注释等。唯一让我头疼的是内部类(因为它将尝试并序列化引用的外部类)。

票数 2
EN

Stack Overflow用户

发布于 2009-09-03 23:04:37

我猜你所有的数据都保存在数据库里了。您可以使用一些测试数据生成工具将测试数据填充到数据库中,然后以SQL脚本的形式导出这些数据,然后在集成测试开始之前预加载这些数据。

您可以使用DBUnit在您的单元测试中预加载数据,它还提供了许多选项来在测试开始前验证数据库结构/数据。http://www.dbunit.org/

对于数据库中的测试数据生成,您可以使用许多商业工具。我不知道有什么好的免费工具可以处理诸如预定义的数据列表、带有预定义分布的随机数据、来自其他表的外键使用等功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1376289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档