Пиша тестови случаи за моя проект, един тест, от който се нуждая, е да тествам изтриването. Това може да не е точно правилният начин да го направя, но се натъкнах на нещо, което няма смисъл за мен.
Кодът е като този:
[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
се провалят ??
Assert.Equals should not be used for Assertions
... какво? - person baron   schedule 06.05.2010Assert.AreEqual(fruit1, fruit2);
Неуспешно: Очаква се ‹FruitProject.Fruit› Но беше: ‹FruitProject.Fruit› отново е тази справка за сравнение - person baron   schedule 07.05.2010fruit1.Equals(fruit2)
иfruit1==fruit2
се провалят ?? - person baron   schedule 07.05.2010