为我的项目编写测试用例,我需要做的一项测试是测试删除。这可能不是正确的解决方法,但是我偶然发现了一些对我来说没有意义的东西。
代码是这样的:
[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>
-
fruit1.Equals(fruit2)
和fruit1==fruit2
均失败? 最佳答案
==比较引用,因为listOfFruit [1]和f2的引用不同,所以失败
C# difference between == and Equals()