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

时间:2011-07-23 19:00:00

标签: java unit-testing freemarker

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

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

1 个答案:

答案 0 :(得分:2)

取决于您的模板将输出的内容。当然,如果它生成格式良好的格式,如XML或JSON,你可以很容易地解析它,所以我不得不假设它可能是HTML。您可以使用JTidy将其解析为可以从Java使用的DOM模型。

http://jtidy.sourceforge.net/

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

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