2011-05-10 11 views
0

J'ai un aperçu de scénario qui compare les résultats d'une méthode à la matrice qui doit être retournée. Donc, je reçois une série de déclarations comme ça quand ils ne correspondent pas:Comment formater la sortie "Diff" dans le concombre

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"] 

Ce n'est pas la sortie la plus succincte ou utile. Il serait beaucoup plus utile d'être comme affiché au:

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

De cette façon, je pouvais voir instantanément quelles valeurs étaient plus ou manquants.

Répondre

1

Utilisez la méthode de différence Array:

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

Rock You. Merci beaucoup. –

+0

Cette logique est un peu erronée, si le réel a plus d'éléments, mais contient encore le prévu, cela va passer. ([1,2,3] - [1,2,3,4]) == [] # => true C'est peut-être ce que vous cherchez mais cela vous donnera des faux positifs si ce n'est pas le cas. – stellard

Questions connexes