レールのアクションが正しいテキストを返していることをテストする標準またはベストプラクティスの方法はありますか? たとえば、次のことを行う ajax 検証を行うために使用される単純なアクションがあります。
def get_object_id
if params[:id].blank?
return render(:text => -1, :layout => false)
end
my_object = MyObject.find_by_id(params[:id].strip)
# If the object is valid return the object id
if my_object and my_object.active?
return render(:text => my_object.id, :layout => false)
end
# Otherwise, return -1
return render(:text => -1, :layout => false)
end
現在、テストで @response オブジェクトを使用しています...つまり:
def test_get_object_id_returns_invalid_for_non_existent_id
# Act
get :get_object_id, :id => 999
# Assert
assert_response :success
assert_equal "-1", @response.body
end
しかし、私がこれまでに見てきたことは、ほとんどが Rails に慣れていないことですが、チェックする以外に、おそらくこれを行うためのより良い方法があることを示唆しているようです@request.body
。
そこで、Ruby の専門家の皆さんに質問します。これが最善の方法ですか?