2015-09-25 103 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。 –