gpt4 book ai didi

c# - 为什么 Assert.AreEqual 因相同的对象而失败?

转载 作者:行者123 更新时间:2023-11-30 13:22:40 24 4
gpt4 key购买 nike

我有一个包含这些属性的类:

public class Person
{
public long Id { get; set; }

public string Name { get; set; }

public int? IdCountry { get; set; }
public virtual Country Country { get; set; }
public int? IdState { get; set; }
public virtual State State { get; set; }
}

public class Country
{
public int Id { get; set; }
public string Name { get; set; }
}

public class State
{
public int Id { get; set; }
public string Name { get; set; }
public int IdCountry { get; set; }
public virtual Country Country { get; set; }
}

在单元测试中,我创建了 2 个具有相同值的对象

Person expected = new Person()
{
Name = "blablablbla",
Id = 1
};
Person actual = PessoaFactory.Create(Name: "blablablbla", Id: 1);
Assert.AreEqual<Person>(expected, actual);

但是 Assert.AreEqual 抛出异常。

最佳答案

您需要覆盖 Equals 来比较对象。默认实现比较引用,而不是值。查看MSDN documentation .

关于c# - 为什么 Assert.AreEqual<T> 因相同的对象而失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20072881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com