2011-05-10 17 views
0

我有一個場景大綱,它將一個方法的結果與應該返回的數組進行比較。所以,我得到了一系列的語句是這樣,當它們不匹配:如何格式化黃瓜中的「差異」輸出

expected: ["a", "b", "c", "d", "e", "f"] 
    got: ["c", "d", "e", "f", "g"] (using ==) 
Diff: 
@@ -1,2 +1,8 @@ 
-["a", "b", "c", "d", "e", "f"] 
+["c", 
+ "d", 
+ "e", 
+ "f", 
+ "g"] 

這還不是最簡潔的還是很有幫助的輸出。這將是dipslay更有幫助,如:

expected: ["a", "b", "c", "d", "e", "f"] 
    got: ["c", "d", "e", "f", "g"] (using ==) 
Diff: 
@@ -1,2 +1,8 @@ 
-["a", "b"] 
+["g"] 

這樣我可以立即看到什麼值是額外的或失蹤。

回答

1

使用數組的區別方法:

(expected_array - actual_array).should == [] 
+0

您的岩石。萬分感謝。 – 2011-05-10 15:25:34

+0

這個邏輯有點有缺陷,如果實際有更多的元素,但仍然包含預期,這將通過。 ([1,2,3] - [1,2,3,4])== []#=> true 這可能是您正在尋找的東西,但如果沒有,這會給您帶來誤報。 – stellard 2011-12-01 00:07:37