2015-09-25 100 views
1

我写了一个模板,做一些东西到一个JSON对象,作为一个例子:测试ERB模板

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

我如何写一个单元测试来检查JSON输出是有效的?我是Ruby的新手,所以我不知道我会用这个工具。另外,是否有更好的方法来制作ERB模板中的JSON对象列表?

我没有权限访问或了解正在处理模板的事物,所以我对我可以使用哪些Ruby库并不十分肯定。

注意: RAILS不参与。只是香草红宝石。

+0

您是否考虑过使用[JBuilder](https://github.com/rails/jbuilder/blob/master/README.md)? –

回答

1

如果您只是试图将某个对象或列表作为JSON返回,则可以从控制器调用render json: object。您可以测试这一点,你可以测试任何其他控制器以同样的方式:http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers

如果你绝对需要它ERB不管什么原因,你可以调用对象的方法.to_json ERB标签之间:<%= object.to_json %>

.to_json方法将始终返回有效的JSON。

+0

应该告诉你,这不通过Rails。只是简单的ERB和Ruby。 – Breedly

+0

您应该仍然可以使用'json' gem将对象表示为json。 –