使用Assert比较两个对象

时间:2010-05-06 03:51:41

标签: nunit testing collections assert unit-testing

为我的项目编写测试用例,我需要的一个测试是测试删除。这可能不是正确的方法,但我偶然发现了一些对我没有意义的事情。

代码是这样的:

[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都失败了?

1 个答案:

答案 0 :(得分:1)

==比较引用,因为listOfFruit [1]和f2的引用不一样,它失败了

C# difference between == and Equals()