こんにちは、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
こんな感じで表示色のカスタマイズもできます。
気になりましたら利用してみてはいかがでしょうか。
コメント