gpt4 book ai didi

unit-testing - 单元测试文件解析例程?

转载 作者:行者123 更新时间:2023-12-01 12:00:49 25 4
gpt4 key购买 nike

我正在努力解决如何对文件进行单元测试的问题...假设我有一个包含 25 列的文件,其长度可能在 20-1000 条记录之间...我如何编写单元测试那?该函数将文件作为字符串作为参数,并返回一个包含文件内容的 DataTable...

我能想到的最好的办法是解析一个 4 记录文件并只检查左上角和右下角的“角”...例如2 个顶部记录中的前几个字段和 2 个底部记录的最后几个字段......我无法想象必须为文件中的每个字段繁琐地手动键入 assert 语句。只做一个记录,每个字段看起来都一样薄弱,因为它没有考虑多个记录文件或意外数据的情况。

当时这似乎“足够好”......但是现在我正在从事一个新项目,该项目本质上是解析来自 10 个不同来源的各种 PDF 文件,每个来源都有 4-6 种不同的格式他们的文件,所以大约 40-60 个解析例程。我们最终可能会在未来完全自动化 25 个额外的来源。我们获取 PDF 并使用第 3 方工具将其转换为 excel。然后我们坐下来分析输出中的模式,并编写调用该工具 API 的代码,获取 excel 文件并对其进行解析 - 剥离垃圾,对不同地方的数据进行排序,清理等等。

我可以在多大程度上对这样的东西进行单元测试?

最佳答案

我不确定我是否完全理解这个问题,但这是一个想法。收集一堆代表不同格式和边缘情况的示例文件。运行到您的数据表的转换并在第一时间手动检查数据表以确保它们是正确的。然后将 DataTable 序列化为 XML 格式,并将它们与测试用例 PDF 文件一起存储在单元测试套件中。

您的自动化单元测试可以执行从 PDF 到 DataTable 的转换,并将结果与​​相应的“批准的”序列化 DataTable 表示进行比较。

您可以使用此方法随着时间的推移建立一个测试文档库。单元测试失败表明对解析例程的更改破坏了特定的边缘情况。

There's one 'catch' though. I my first example I was talking of a .NET application. However, this new project with the 40 possibly 'scrubbing scripts' is written in VBA.... The input is an Excel Spreadsheet and the output is an Excel spreadsheet... how could I serialize this? Maybe do a checksum on the entire file????

对于第二个示例,如果 Excel 电子表格不是太复杂,您可以尝试通过单元格比较例程创建一个单元格,如 this one ;也许您可以将其包装到自定义 Assert.AreExcelWorksheetsEqual() 中。不过你是对的,校验和也可能有效。

关于unit-testing - 单元测试文件解析例程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1768059/

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