RSpecでオブジェクトの差分を見やすくする super_diff – インゲージ開発者ブログ


こんにちは、tsuka05です。

RSpecでexpectedとactualが異なっていたとき、ちょっと複雑なオブジェクトだと差分がわかりにくいことってありますよね。
そんなときに便利なGemがsuper_diffです。

       Diff:
       @@ -1,2 +1,2 @@
       -:customer => {person: #, shipping_address: {city: "Hill Valley", line_1: "123 Main St.", state: "CA", zip: "90382"}},
       -:items => [{cost: 100000, name: "Fender Stratocaster", options: ["red", "blue", "green"]}, {name: "Chevy 4x4"}],
       +:customer => {person: #, shipping_address: {city: "Hill Valley", line_1: "456 Ponderosa Ct.", state: "CA", zip: "90382"}},
       +:items => [{cost: 100000, name: "Fender Stratocaster", options: ["red", "blue", "green"]}, {name: "Mattel Hoverboard"}],

こんな感じのdiffを、

         {
           customer: {
             person: #,
             shipping_address: {
       -       line_1: "123 Main St.",
       +       line_1: "456 Ponderosa Ct.",
               city: "Hill Valley",
               state: "CA",
               zip: "90382"
             }
           },
           items: [
             {
               name: "Fender Stratocaster",
               cost: 100000,
               options: [
                 "red",
                 "blue",
                 "green"
               ]
             },
             {
       -       name: "Chevy 4x4"
       +       name: "Mattel Hoverboard"
             }
           ]
         }

こんな感じに表示してくれます。

SuperDiff.configure do |config|
  config.actual_color = :green
  config.expected_color = :red
  config.border_color = :yellow
  config.header_color = :yellow
end

こんな感じで表示色のカスタマイズもできます。

気になりましたら利用してみてはいかがでしょうか。




Source link

関連記事

コメント

この記事へのコメントはありません。