Unterschied zwischen Assert.AreEqual und Assert.AreSame?

Antworten:

87

Dies bedeutet, dass AreSame () überprüft, ob es sich um genau dasselbe Objekt handelt - wenn die Referenz dasselbe Objekt im Speicher angibt.

AreEqual () prüft, ob Objekte den gleichen Typ und Wert haben. Gleiche Objekte können an zwei verschiedenen Stellen im Speicher existieren.

Magos
quelle
68

Assert.AreEqual(a, b) ist das gleiche wie Assert.IsTrue(Object.Equals(a, b))

Assert.AreSame(a, b) ist das gleiche wie Assert.IsTrue(Object.ReferenceEquals(a, b))

(Der einzige Grund, den ich wusste, ist, dass ich es heute vor ein paar Stunden selbst herausgefunden habe, weil ich ein machen musste Assert.IsTrue(Object.ReferenceEquals(a,b))und dachte "Ich frage mich, ob es einen besseren Weg gibt, dies zu tun")

Scott Chamberlain
quelle