测试两个对象在测试中的相等性
本文关键字:测试 对象 两个 | 更新日期: 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页面可能会对你有所帮助。