测试两个对象的测试相等性
Test equality of two objects on testing
我有以下 class:
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);
}
我知道 expect 和 result 具有相同的 Direction 和 属性 值,但我在测试中仍然得到 False ...我想这是因为它们不是同一个实例 ...
我真的需要如下比较方向和 属性 吗?
Assert.True(result.Property == expect.Property && expect.Property == expect.Property );
当对象有很多属性时,这可能会变得很长...
或者有更好的方法吗?
如果 OrderRule
没有必要成为 class 则将其设为默认实现值相等的结构。还有一个完整的 MSDN page 关于价值平等可能对你有帮助。
我有以下 class:
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);
}
我知道 expect 和 result 具有相同的 Direction 和 属性 值,但我在测试中仍然得到 False ...我想这是因为它们不是同一个实例 ...
我真的需要如下比较方向和 属性 吗?
Assert.True(result.Property == expect.Property && expect.Property == expect.Property );
当对象有很多属性时,这可能会变得很长...
或者有更好的方法吗?
如果 OrderRule
没有必要成为 class 则将其设为默认实现值相等的结构。还有一个完整的 MSDN page 关于价值平等可能对你有帮助。