Использование Assert для сравнения двух объектов - PullRequest
1 голос
/ 06 мая 2010

Написание тестовых случаев для моего проекта, один тест, который мне нужен, это тест на удаление. Возможно, это не совсем правильный путь, но я наткнулся на то, что не имеет смысла для меня.

Код такой:

[Test]
private void DeleteFruit()
{
    BuildTestData();
    var f1 = new Fruit("Banana",1,1.5);
    var f2 = new Fruit("Apple",1,1.5);
    fm.DeleteFruit(f1,listOfFruit);
    Assert.That(listOfFruit[1] == f2);
}

Теперь фруктовый объект, который я создаю, строка 5 - это объект, который, как я знаю, должен находиться в этой позиции (с этим конкретным набором данных) после удаления f1.

Также, если я сижу, отлаживаю и вручную сравниваю объекты listOfFruit [1] и f2, они совпадают. Но эта линия Утверждения терпит неудачу. Что дает?

редактирование:

Получение следующего:

- Assert.Equals не следует использовать для утверждений

Assert.AreEqual(fruit1, fruit2); Failed: Expected <FruitProject.Fruit> But was: <FruitProject.Fruit>

-Both fruit1.Equals(fruit2) и fruit1==fruit2 fail ??

1 Ответ

1 голос
/ 06 мая 2010

== сравнивает ссылки, так как ссылки на listOfFruit [1] и f2 не совпадают, происходит сбой

C # разница между == и Equals ()

...