测试 ERB 模板

Test an ERB Template

我写了一个模板,可以对 JSON 对象做一些事情,例如:

{
  "list": [
    <% ['a', 'b', 'c', 'd'].each do |letter| %>
     <%= puts "{ \"letter\": \"" + letter + "\" }," %>
    <% end %>
   ]
}

如何编写单元测试来检查 JSON 输出是否有效?我是 Ruby 的新手,所以我真的不知道为此要使用什么工具。另外,有没有更好的方法在 ERB 模板中列出 JSON 个对象?

我无权访问或不知道处理模板的东西,所以我不太确定我可以使用哪些 Ruby 库。

注意: RAILS不涉及。只是香草 Ruby.

如果您只是想 return 某些对象或列表为 JSON,您可以从您的控制器调用 render json: object。您可以像测试任何其他控制器一样测试它:http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers

如果你出于某种原因在 ERB 中绝对需要它,你可以在 ERB 标签之间的对象上调用 .to_json 方法:<%= object.to_json %>

.to_json方法将始终return有效JSON。