- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力解决如何对文件进行单元测试的问题...假设我有一个包含 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/
我有以下功能: fun process(t: T, call: (U) -> Unit, map: (T) -> U) = call(map(t)) fun processEmpty(t: T,
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我正在实现 SVG Tiny 1.1,但我无法理解“用户单元”的概念。 SVG 1.1 规范将每个没有指定单位(例如“mm”、“cm”、“pt”等)的 定义为“用户单位”。 在实现接口(interfa
我正在学习本教程 - http://blog.dasberg.nl/getting-your-frontend-code-quality-in-order/ - 将前端质量指标推送到 SonarQub
我用了 rails new app --skip-test-unit 因为最初,我认为我可以稍后添加测试。 我开发了我的应用程序的很大一部分。 现在,我想添加 Test::Unit 但我找不到任何有关
您如何对由某些报表引擎(例如Crystal Reports或SQL Server Reporting Services)创建的报表进行“单元测试”? 最佳答案 报告的问题类似于GUI的问题。 如果报表
今天在 Proggit 上,我正在阅读题为“Why Unit Testing Is A Waste of Time”的提交的评论线程。 我并不真正关心文章的前提,而是关心 comment对此作出: T
“单元测试”属于白盒测试还是黑盒测试?还是与其他两种测试完全不同? 最佳答案 我觉得这个article by Kent Beck更多地引用 TDD 和单元测试很好地总结了这一点。基本上,这取决于您实际
这是代码: def filterAcc(p: Tweet => Boolean, acc: TweetSet): TweetSet = { foreach(tweet => if(p(el
我打算编写一个抽象类来测试我所有的 DTO 和 DOMAIN 对象。此类将采用可模板对象(通用类型)并使用反射来获取其中的属性类型,并将一些默认值分配给标识的原始类型,稍后将通过访问它们来断言这些类型
我有一个像这样的简单容器特征: trait Handler { def apply[In, Out](in: In): Out } 当我尝试实现它时: new Handler { def ap
为什么这样编译 scala> import scala.concurrent.Future import scala.concurrent.Future scala> val f: Unit = Fu
您使用什么样的实践来使您的代码对单元测试更加友好? 最佳答案 TDD——首先编写测试,强制你要考虑可测试性和帮助编写实际的代码需要的,而不是你认为可能的需要 接口(interface)重构——使得 m
我在elasticsearch中有文本字段,我想在kibana上可视化词云... 第一步,我们需要标记它们,我使用了“标准标记器” ... 使用这种形式的词云可视化结果如下图所示: 但是我需要的是专有
我有以下方法: override def insertAll(notifications: Seq[PushNotificationEncoded]) (i
我的应用程序服务层中有很多方法正在做这样的事情: public void Execute(PlaceOrderOnHoldCommand command) { var order = _rep
一直在使用 Sails.js,但在为 Controller 设计 Jasmine 单元测试时遇到了麻烦。如果这很明显,请原谅我的无知,因为在过去的 3-4 个月里我才深入研究 JavaScript 开
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
在ReKotlin repo README中,有如下代码: data class CounterActionIncrease(val unit: Unit = Unit): Action 代码Unit
我想对一个业务类进行测试,但我遇到了这个问题:其中一个模拟对象与其他类(例如 Sites、URL 和 ComplexObject)有许多依赖关系。 我的问题是:如果我必须在需要测试的方法中使用我的模拟
我是一名优秀的程序员,十分优秀!