当前位置:  开发笔记 > 编程语言 > 正文

"单元测试"报告

如何解决《"单元测试"报告》经验,为你挑选了2个好方法。

您将如何"单元测试"由某些报表引擎(如Crystal Reports或SQL Server Reporting Services)创建的报表?



1> Epaga..:

为了测试我们自己的基于Java的报告产品,i-net Clear Reports,我们运行一系列测试报告,将它们导出为各种导出格式,确保输出符合要求,然后不断地每天运行这些相同的报告,将结果与原始数据进行比较.然后,任何差异都会显示为测试失败.

它对我们来说效果很好.这样做的缺点是,在重置测试数据之前,任何可能没有任何差异的细微差别都会显示为测试失败.

旁注:这不是一个单元测试,而是一个验收测试.但我不知道你怎么能真正"单元测试"整个报告.



2> Gishu..:

报告的问题类似于GUI的问题.如果报告/ GUI有很多(错位的)情报,那将使测试变得困难.然后解决方案是

分离演示:与内容分开演示(数据访问/域/业务规则).在当前上下文中,您将创建某种反映最终报表内容的ViewModel类(例如,如果您的报表中包含订单详细信息和订单项,则此类应具有详细信息的属性和行列表项目对象).ViewModel可以无限简单地进行测试.应用内容的最后一英里应该是相对微不足道的(瘦UI).
例如,如果使用xslt呈现报表,则可以使用XmlUnit或字符串比较等工具测试数据xml.对于最终报告,您可以对数据xml上的xsl转换有合理的信心......此处的任何错误都很容易修复.

但是,如果您使用Crystal Reports等第三方供应商,则无法控制/访问报告生成.在这种情况下,您可以做的最好的事情是生成名为Golden Files的代表性/预期输出文件(例如pdfs).在测试中将此作为只读资源用于比较实际输出.然而,这种方法非常脆弱......因为对报告生成代码的任何实质性更改都可能导致所有以前的Golden文件不正确.所以他们必须重新生成.如果自动化的成本效益比太高,我会说Go手册与老式的word doc测试计划.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有