15 java testing unit-testing jasper-reports
我想测试我的应用程序的所有jasper报告.我希望能够检测到:
JasperCompileManager.compileReport(some inputStream)
不抛出JRException
是一个很好的选择吗?)JasperFillManager.fillReport(someReport, someParameters, someDataSource)
不抛出JRException
是一个很好的选择吗?)理想情况下,我希望保持测试过程最通用.问题是每个jasper都有不同的数据源,所以为了检测这个错误,我需要在列表中生成一些数据(对吗?),我需要生成的这些数据对于我的应用程序的每个jasper都是不同的.所以我不知道我能够重用多少测试代码.你会采取什么方法?
谢谢!
对于编译问题和填写问题:是的,您可以按照描述进行操作,然后尝试编译并填写报告。如果没有抛出异常,那么就没有问题。
对于检查渲染问题的第三步,我将报告导出为 XML:
String xml = JasperExportManager.exportReportToXml(
JasperFillManager.fillReport(report, params, dataSource)
);
Run Code Online (Sandbox Code Playgroud)
理论上,XML 是 PDF 文件的准确表示,但其格式在测试中易于阅读。例如,如果字段太长并且内容被截断,那么它在 XML 中也会被截断。所有值都已采用“渲染”格式,因此,如果您有一个使用 (DecimalFormat) 模式格式化的数字,则该数字将在 XML 中格式化。此外,字段的 uuid 标识符仍然存在于 XML 中,因此您也可以轻松找到这些字段。要检查字段,您可以执行以下操作:
hasXPath("//*[@uuid = '" + field.getUuid() + "']/../*[local-name() = 'textContent']", matcher)
Run Code Online (Sandbox Code Playgroud)
小智 1
对于编译问题,一种方法是使用iReport工具,所有报表模板都编译成功;假设您正在使用模板,然后将数据填充到其中。
我发现以下链接很有用,
http://flexingcode.blogspot.com/2009/04/junit-for-jasper-reports.html
希望有帮助,
曼朱
归档时间: |
|
查看次数: |
10778 次 |
最近记录: |