java - 如何为使用 FreeMarker 模板的代码编写单元测试?

标签 java unit-testing freemarker

我将使用 Java 中的模板引擎(可能是 FreeMarker)。现在我想知道如何为其编写单元测试。

我可以将预期输出准备为文本文件,但每当更改模板时我都必须手动更改它。我想使用模板解析输出以获取模型数据及其原始模型。我可以这样做吗?

最佳答案

取决于您的模板将输出的内容。当然,如果它生成了格式良好的格式(例如 XML 或 JSON),您可以轻松解析它,所以我只能假设它可能是 HTML。您也许可以使用 JTidy 将其解析为可在 Java 中使用的 DOM 模型。

http://jtidy.sourceforge.net/

另一个选择可能是使用良好的老式 grep 例程,然后构建像assertContains、assertDoesNotContain 等原语。我有一个 JSON 库,我为其编写单元测试,我采用了这条路线来执行老式 grep,并且它有效很好,因为它可以捕获错误。我担心直接解析 JSON 代码,因为我将使用我在测试中编写的代码来测试该代码。您的情况可能有所不同,因此解析为 DOM 模型可能更有意义。

要考虑的最重要的事情是您正在测试 View 。因此,当事情在视觉上发生变化时,您可能很难保持测试最新。在大多数计划中, View 都会发生很大变化,因为您的客户、PM、控制您正在做的事情的人经常改变主意。

关于java - 如何为使用 FreeMarker 模板的代码编写单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6802592/

相关文章:

spring-boot - 如何使用Freemarker通过Spring Boot发送电子邮件

java - Freemarker 模板异常

java - 如何在java中实现黑名单

java - 如何通过Java输出控制台运行GDB并接受GDB命令?

unit-testing - MS 单元测试示例

Android - ActivityUnitTestCase 测试类中 startActivity 方法上的 AssertionFailedError

javascript - 为什么 jest.useFakeTimers 不适用于 RxJs Observable 延迟

java - 如何在 Freemarker 列表之间获取逗号

java - 如何使用分页在 Spring Data JPA 中通过 SELECT 子句的别名对投影进行排序?

java - PDF 提取中缺少表格布局信息