Използване на Assert за сравняване на два обекта

Пиша тестови случаи за моя проект, един тест, от който се нуждая, е да тествам изтриването. Това може да не е точно правилният начин да го направя, но се натъкнах на нещо, което няма смисъл за мен.

Кодът е като този:

[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 се проваля. Какво дава?

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

Получаване на следното:

-Assert.Equals не трябва да се използва за твърдения

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

- И fruit1.Equals(fruit2), и fruit1==fruit2 се провалят ??


person baron    schedule 06.05.2010    source източник
comment
assertEquals ще работи по-добре според мен.   -  person Lars Andren    schedule 06.05.2010
comment
изглежда точно това, което търся... но Assert.Equals should not be used for Assertions... какво?   -  person baron    schedule 06.05.2010
comment
Също така Assert.AreEqual(fruit1, fruit2); Неуспешно: Очаква се ‹FruitProject.Fruit› Но беше: ‹FruitProject.Fruit› отново е тази справка за сравнение   -  person baron    schedule 07.05.2010
comment
и fruit1.Equals(fruit2) и fruit1==fruit2 се провалят ??   -  person baron    schedule 07.05.2010
comment
@baron: Вижте това за обяснение на това шантаво съобщение за изключение: stackoverflow.com/a/11584492/79646   -  person Odrade    schedule 20.08.2012


Отговори (1)


== сравнява референциите, тъй като референциите на listOfFruit[1] и f2 не са еднакви, не успява

C# разлика между == и Equals()

person SysAdmin    schedule 06.05.2010
comment
Можете да коригирате проблема си, като внедрите IEquatable на Fruit :) - person Xilconic; 17.03.2014