【发布时间】:2011-10-11 18:27:07
【问题描述】:
我将在 Java 中使用模板引擎(可能是 FreeMarker)。现在我想知道如何为其编写单元测试。
我可以将预期的输出准备为文本文件,但每当我更改模板时,我都必须手动更改它。我想使用模板解析输出以获取模型数据和原始模型。我可以这样做吗?
【问题讨论】:
标签: java unit-testing freemarker
我将在 Java 中使用模板引擎(可能是 FreeMarker)。现在我想知道如何为其编写单元测试。
我可以将预期的输出准备为文本文件,但每当我更改模板时,我都必须手动更改它。我想使用模板解析输出以获取模型数据和原始模型。我可以这样做吗?
【问题讨论】:
标签: java unit-testing freemarker
取决于您的模板将输出什么。当然,如果它生成格式良好的格式,如 XML 或 JSON,您可以轻松解析它,所以我只能假设它可能是 HTML。您或许可以使用 JTidy 将其解析为可在 Java 中使用的 DOM 模型。
另一种选择可能是使用良好的老式 grep 例程,然后构建原语,如 assertContains、assertDoesNotContain 等。我有一个 JSON 库,我为其编写单元测试,我采用这条路线来执行老式 grep,并且它有效很好,因为它可以捕获错误。我担心直接解析 JSON 代码,因为我将使用我在测试中编写的代码来测试该代码。您的情况可能会有所不同,因此解析为 DOM 模型可能更有意义。
要考虑的最重要的事情是您正在测试视图。因此,当事情在视觉上发生变化时,您可能很难让您的测试保持最新。在大多数程序中,视图会发生很大变化,因为您的客户、PM、控制您正在做的事情的人经常改变主意。
【讨论】: