2015-09-25 1 views
1

Я написал шаблон, который делает некоторые вещи в объект JSON, в качестве примера:тест на Еврорадио Шаблон

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

Как я могу написать модульный тест, чтобы проверить, если выход JSON действителен? Я новичок в Ruby, поэтому не знаю, какие инструменты я бы использовал для этого. Кроме того, есть ли лучший способ сделать список объектов JSON в шаблоне ERB?

У меня нет доступа к знаниям, которые обрабатывают шаблон, или я не знаю, какие библиотеки 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

Если вы абсолютно необходимо в Еврорадио по какой-либо причине, вы можете вызвать .to_json метод объекта между ERB тегами: <%= object.to_json %>.

Метод .to_json всегда будет возвращать действительный JSON.

+0

Должен был сказать вам, что это не проходит через Rails. Просто ERB и Ruby. – Breedly

+0

Вы все равно сможете использовать жонглирование 'json' для представления объекта как json. –