如何比较具有名称相同但类型不同的属性的对象?
public class A
{
public Guid Id { get; set; }
}
public class B
{
public string Id { get; set; }
}
public static B Map(A a){
return new B { Id = a.Id.ToString() };
}
Run Code Online (Sandbox Code Playgroud)
版本 1:
void Main()
{
A a = new A { Id = Guid.NewGuid() };
B b = Map(a);
b.Should().BeEquivalentTo(a);
}
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
AssertionFailedException:预期成员 ID 为 {ff73e7c7-21f0-4f45-85fa-f26cd1ecafd0},但发现“{ff73e7c7-21f0-4f45-85fa-f26cd1ecafd0}”。
该文档建议使用等效比较行为可以实现自定义属性断言规则
版本 2:
void Main()
{
A a = new A { Id …Run Code Online (Sandbox Code Playgroud)