Я работаю над тестом для собеседования, и мне нужно написать несколько классов, которые затем проверяются с Assert
утверждениями.Есть одна часть, где два объекта тестируются с Assert.AreEqual()
, сразу после чего следует тест с Assert.AreNotSame
для тех же двух объектов.Насколько я понимаю, первый тест проверяет, что два объекта имеют одинаковые значения (a и b в моем примере), а второй тест проверяет, что они указывают два разных объекта в памяти.Однако первый Assert
терпит неудачу как в моем примере, так и в программе.Я что-то упускаю из-за того, как должны работать эти два Assert
теста?Как они оба могут пройти?
public class Foo
{
public int a { get; set; }
public int b { get; set; }
public Foo(int a, int b) { this.a = a; this.b = b; }
}
Foo a = new Foo();
a.a = 1;
a.b = 2;
Foo b = new Foo(1, 2);
Assert.AreEqual(a,b);//this fails
Assert.AreNotSame(a,b);