测试两个对象在测试中的相等性

本文关键字:测试 对象 两个 | 更新日期: 2023-09-27 17:51:19

我有以下类:

public class OrderRule {
  public OrderDirection Direction { get; }
  public String Property { get; }
}
我使用XUnit创建了一个单元测试,如下所示:
public void TryParse_ParseAscendingOrderRule() {
  OrderRule expect = new OrderRule("name", OrderDirection.Ascending);
  OrderRule result = factory.GetOrderRule("type1");
  Assert.Equal(result, expect);
}

我知道期望和结果有相同的方向和属性值,但我仍然得到False在我的测试…我想这是因为它们不是同一个实例……

我真的需要像下面这样比较方向和属性吗?

  Assert.True(result.Property == expect.Property && expect.Property == expect.Property );

当对象有很多属性时,这个会变得很长…

或者有更好的方法来做到这一点?

测试两个对象在测试中的相等性

如果OrderRule不需要成为类,则将其设置为默认实现值相等的结构体。还有一个关于值相等的MSDN页面可能会对你有所帮助。