gpt4 book ai didi

unit-testing - 单元测试大数据集?

转载 作者:行者123 更新时间:2023-12-03 15:08:36 25 4
gpt4 key购买 nike

对大型数据集进行单元测试的最佳方法是什么?我正在维护的一些遗留代码具有一百个或更多成员的结构;我们正在处理的代码的其他部分创建或分析数百个样本的数据集。

到目前为止,我发现的最佳方法是从磁盘序列化结构或数据集,执行被测操作,将结果序列化到磁盘,然后将包含序列化结果的文件与包含预期结果的文件进行比较。这并不是非常快,并且违反了单元测试的“不接触磁盘”原则。然而,我能想到的唯一替代方法(编写代码来初始化和测试数百个成员和数据点)似乎令人难以忍受。

有没有更好的解决方案?

最佳答案

如果您想要实现的实际上是一个单元测试,您应该模拟底层数据结构并模拟数据。这种技术使您可以完全控制输入。例如,您编写的每个测试可能处理单个数据点,并且您将针对每个条件拥有一组非常简洁的测试。有几个开源模拟框架,我个人推荐 Rhino Mocks ( http://ayende.com/projects/rhino-mocks/downloads.aspx ) 或 NMock ( http://www.nmock.org )。

如果您无法模拟数据结构,我建议您进行重构,以便您能够:-) 值得!或者您可能还想尝试允许模拟具体类的 TypeMock ( http://www.typemock.com/ )。

但是,如果您针对大型数据集进行测试,那么您实际上是在运行功能测试而不是单元测试。在这种情况下,将数据加载到数据库或从磁盘是一种典型的操作。与其避免它,您应该努力让它与自动化构建过程的其余部分并行运行,这样性能影响就不会阻碍您的任何开发人员。

关于unit-testing - 单元测试大数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/235402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com