我将使用 Java 中的模板引擎(可能是 FreeMarker
)。现在我想知道如何为其编写单元测试。
我可以将预期输出准备为文本文件,但每当更改模板时我都必须手动更改它。我想使用模板解析输出以获取模型数据及其原始模型。我可以这样做吗?
最佳答案
取决于您的模板将输出的内容。当然,如果它生成了格式良好的格式(例如 XML 或 JSON),您可以轻松解析它,所以我只能假设它可能是 HTML。您也许可以使用 JTidy 将其解析为可在 Java 中使用的 DOM 模型。
另一个选择可能是使用良好的老式 grep 例程,然后构建像assertContains、assertDoesNotContain 等原语。我有一个 JSON 库,我为其编写单元测试,我采用了这条路线来执行老式 grep,并且它有效很好,因为它可以捕获错误。我担心直接解析 JSON 代码,因为我将使用我在测试中编写的代码来测试该代码。您的情况可能有所不同,因此解析为 DOM 模型可能更有意义。
要考虑的最重要的事情是您正在测试 View 。因此,当事情在视觉上发生变化时,您可能很难保持测试最新。在大多数计划中, View 都会发生很大变化,因为您的客户、PM、控制您正在做的事情的人经常改变主意。
关于java - 如何为使用 FreeMarker 模板的代码编写单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6802592/