测试轨控制器以不同格式响应

se_*_*vel 8 automated-tests ruby-on-rails

我在控制器中有以下功能

def by_xy
        @obj = BldPoly::find_by_xy(:x => params['x'], :y => params['y'])

        respond_to do |format|
            format.html { render :layout => false  }
            format.xml { render :layout => false }
            format.json { render :layout => false }
end
Run Code Online (Sandbox Code Playgroud)

并计划以下列方式编写自动测试

xml = nil
get :by_xy, {:x => 4831, :y => 3242, :format => :json} 
assert_nothing_thrown { xml = REXML::Document.new(@response.body) }

td = REXML::XPath.first(xml, "//result/item")
assert_equal need_value, td.value
Run Code Online (Sandbox Code Playgroud)

我在50ms内完成(查看:0,DB:230)| 406不可接受[ http://test.host/search/by_xy/4831/3242.json]

当我错过测试代码格式时 - 一切正常,

我该怎么写测试?

se_*_*vel 9

我实际想出来了; 这应该是怎么回事

get :by_xy, {:x => i[:x], :y => i[:y]}, :format => :json
Run Code Online (Sandbox Code Playgroud)