快速测试freemarker表达式

时间:2014-08-12 12:23:28

标签: freemarker

今天我面临着写一些自由标记表达的前景。虽然整体难度不高,但其中一些将包含相当多的内置调用(即将格式化的字符串解析为数字,增加它并再次格式化)。

这让我思考 - 我怎样才能测试开发目的只是为了减少花费的时间?我知道有一些IDE工具可以帮助解决语法问题 - 然而,如何测试我在示例字符串上编写的功能?有什么能让我解析${" b lah"?trim}并检查输出是否符合我的预期?运行我的应用程序显然是一种可能性,但在我的情况下,需要花费太长时间才能到达使用freemarker的部分。

1 个答案:

答案 0 :(得分:0)

我会使用一个简单的JUnit测试来测试它。

示例:

public class FreemarkerSandbox {

   @Test
   public void testFreemarker() throws TemplateException, IOException {
      Configuration cfg = new Configuration();
      Template template = cfg.getTemplate("trim.ftl", CharEncoding.UTF_8);
      HashMap<String, Object> model = new HashMap<String, Object>();

      Writer out = new StringWriter();
      template.process(model, out);

      assertEquals("b lah", out.toString());
   }
}

使用trim.ftl只包含要测试的表达式。

${"  b lah"?trim}

可以通过在模型中传递测试用例来改进它。