我试图像这样在我的TestCase中执行get:
request.env['CONTENT_TYPE'] = 'application/json'
get :index,:application_name=>"Heka"
尽管如此,它失败了:
ActionView::MissingTemplate: Missing template alarm_events/index with {:handlers=>[:builder, :haml, :erb, :rjs, :rhtml, :rxml], :locale=>[:en, :en], :formats=>[:html]
尽管在我的控制器中我有:
respond_to :html, :json
def index
@alarm_events=[...]
respond_with @alarm_events do |format|
format.json{
render :json=>@alarm_events.map{|e| e.to_portal_representation}.to_json,
:content_type=>'application/json'
}
end
end
我该如何编写TestCase上的预期请求?
当我在浏览器中请求alarm_events.json时,它可以正常工作。
由于
答案 0 :(得分:8)
我必须在动作控制器测试的参数中指定格式:
get :index, {format: :json}
答案 1 :(得分:6)
@request.accept = 'application/json'
答案 2 :(得分:2)
我建议在format.json
中设置标题def index
@alarm_events=[...]
respond_with @alarm_events do |format|
format.json{
render :json => @alarm_events.map{|e| e.to_portal_representation}.to_json, :content_type => 'application/json'
}
end