Ruby / Rspec: Möglich den Inhalt von zwei Objekten zu vergleichen?

8

Ich habe zwei verschiedene Objekte in Ruby mit genau den gleichen Attributen und Werten erstellt.

Ich würde jetzt gerne vergleichen, dass der Inhalt beider Objekte gleich ist, aber die folgenden Vergleiche:

%Vor%

fehlgeschlagen mit:

%Vor%

Gibt es in rspec / ruby ​​eine Möglichkeit, dies einfach zu erreichen?

Prost !!

    
mickael 16.12.2012, 05:17
quelle

4 Antworten

9

Eine idiomatische Möglichkeit besteht darin, den Operator #== zu überschreiben:

%Vor%

Wenn Sie dies tun, möchten Sie generell auch die #hash -Methode überschreiben. Es ist weniger üblich, #eql? oder #equal? zu überschreiben.

BEARBEITEN : In diesem speziellen Fall, in dem Sie #== nicht überschreiben, können Sie auch ein angepasster RSpec-Matcher .

    
Eric Walker 16.12.2012 05:20
quelle
2

Ein bisschen spät, aber Sie könnten es serialisieren, zum Beispiel:

%Vor%     
Kybi 22.04.2015 09:53
quelle
0

Vielleicht sollten Sie in Betracht ziehen, den Gleichheitsoperator auf das Objekt zu überladen.

    
Arcturus 16.12.2012 05:19
quelle
0

Verwenden Sie den have_attributes-Matcher, um anzugeben, dass die Attribute eines Objekts den erwarteten Attributen entsprechen:

%Vor%

Relishapp RSpec Docs

    
JE42 28.08.2016 18:23
quelle

Tags und Links