0

私はこれに長い間苦労してきました。組み合わせの数を誰が知っているかを試してみましたが、役に立ちませんでした。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 投稿をテストすることは可能ですか? 公式ドキュメントは、この問題について非常に簡潔です。

4

1 に答える 1