我已经为此苦苦挣扎了很长时间,尝试了谁知道有多少组合-无济于事。似乎 SO 和 Google 上的其他几个人无法解决这个问题。
本质上,我在 Rails 4 的内置功能测试框架内的控制器上发布 :update 操作。我的应用程序严格来说是一个 JSON API,所以我需要将 :update 请求作为 JSON 请求发布。在野外一切都很好,但功能测试语法似乎无法掌握我需要的东西。
这是我目前的尝试:
test "should be able to update location" do
post :update, id: 1, format: :json, '{"is_private": "false"}'
get :show, id: 1, format: :json
assert_equal json['data'][0]['is_private'], false
end
运行 rake test 会导致语法错误:
unexpected '\n', expecting =>
为清楚起见,我的控制器操作如下所示:
def update
@location = Location.find(params[:id])
if @location.update_attributes(ActiveSupport::JSON.decode(request.body.read))
api_response(@location)
else
respond_with api_error
end
end
我在这里想念什么?甚至可以使用 Rails 4 的内置功能测试框架测试 JSON 帖子吗?官方文档在这个问题上非常简洁。