Was ist der Unterschied zwischen Assert.AreEqual und Assert.AreSame?Diff zwischen Assert.AreEqual und Assert.AreSame?
48
A
Antwort
58
Es bedeutet, dass AreSame() überprüft, dass sie das exakt gleiche Objekt sind - wenn Referenz das gleiche Objekt im Speicher angeben.
AreEqual() überprüft, ob Objekte den gleichen Typ und Wert haben. Gleichwertige Objekte können an zwei verschiedenen Stellen im Speicher vorhanden sein.
42
Assert.AreEqual(a, b)
das gleiche ist wie Assert.IsTrue(Object.Equals(a, b))
Assert.AreSame(a, b)
die gleiche wie Assert.IsTrue(Object.ReferenceEquals(a, b))
ist
(der einzige Grund, warum ich mich heute vor wenigen Stunden wusste, das ich dachte, es nur, weil ich ein Assert.IsTrue(Object.ReferenceEquals(a,b))
tun musste und Gedanke "Ich frage mich, ob es eine bessere Möglichkeit gibt, dies zu tun")
Mögliches Duplikat von [Was ist der Unterschied zwischen Assert.AreNotEqual und Assert.AreNotSame?] (Http://stackoverflow.com/questions/543263/whats-the-difference-between-assert-arnotequal-and-assert-arenotsame) – Scott