Использование 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); Failed: Ожидается ‹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