JBuilderを使用して RSpec で json 出力をテストするクリーンな方法を探しています。JSON テストの一般的な方法は、as_json メソッドを実装し、RSpec で受け取ったオブジェクトを object.to_json メソッドと比較することです。しかし、私が JBuilder を使用している大きな理由は、to_json が吐き出すすべての属性が必要ないからです。したがって、これは比較を破ります。
現在、JBuilder では、RSpec の結果をテストするために次のことを行う必要があります。
1) Factory オブジェクトを作成します: @venue
2) 「期待される」JSON 文字列を含むハッシュを RSpec テスト内に作成します。
@expected => {:id => @venue.id,:name=>@venue.name..........}
2) @expected 文字列を、JSON 呼び出しから返された results.response.body と比較します。
これは単純に思えますが、オブジェクトが 15 以上の属性でレンダリングされており、@expected ハッシュ文字列を作成するのは面倒で非常に脆弱です。これを行うより良い方法はありますか?