测试时测试两个对象的相等性

时间:2016-06-27 16:22:08

标签: c# xunit

我有以下课程:

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);

}

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

我真的需要比较方向和属性如下吗?

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

当对象具有许多属性时,这可能变得非常长......

或者有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果OrderRule没有必要成为一个类,那么使它成为一个默认实现值相等的结构。还有一个关于价值平等的整个MSDN page可能对您有帮助。