В чем разница между Assert.AreEqual и Assert.AreSame?
Разница между Assert.AreEqual и Assert.AreSame?
Ответ 1
Это означает, что AreSame() проверяет, что они являются одним и тем же объектом - если ссылка указывает на тот же объект в памяти.
AreEqual() проверяет, что объекты имеют одинаковый тип и значение. Равные объекты могут существовать в двух разных местах в памяти.
Ответ 2
Assert.AreEqual(a, b)
совпадает с Assert.IsTrue(Object.Equals(a, b))
Assert.AreSame(a, b)
совпадает с Assert.IsTrue(Object.ReferenceEquals(a, b))
(единственная причина, по которой я знал, я просто подумал об этом несколько часов назад, потому что мне нужно было сделать Assert.IsTrue(Object.ReferenceEquals(a,b))
и подумал: "Интересно, есть ли лучший способ сделать это" )