【问题标题】:How to write unit tests for code, which uses FreeMarker templates?如何为使用 FreeMarker 模板的代码编写单元测试?
【发布时间】:2011-10-11 18:27:07
【问题描述】:

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

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

【问题讨论】:

    标签: java unit-testing freemarker


    【解决方案1】:

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

    http://jtidy.sourceforge.net/

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

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

    【讨论】:

      猜你喜欢
      • 2013-10-01
      • 2015-03-30
      • 2019-11-28
      • 2013-06-02
      • 2020-06-25
      • 2020-08-23
      • 2016-10-26
      • 1970-01-01
      • 2015-03-12
      相关资源
      最近更新 更多