,如果你愿意,你可以使用反射,这里是一个通用方法,您可以使用它比较任何两个对象,无论它们是什么类型:
public void CompareMyObjects(object object1, object object2)
{
var type1Fields = object1.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty);
var type2Fields = object2.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty);
var propsInCommon = type1Fields.Join(type2Fields, t1 => t1.Name, t2 => t2.Name, (t1, t2) => new { frstGetter = t1.GetGetMethod(), scndGetter = t2.GetGetMethod() });
foreach (var prop in propsInCommon)
{
Assert.AreEqual(prop.frstGetter.Invoke(object1, null), prop.scndGetter.Invoke(object2, null));
}
}
,你可以按如下方式使用方法:
CompareMyObjects(actualCustomer, _oCustomer);
CompareMyObjects(actualAccount, _account);
我希望帮助。
你试过了什么?尝试在您喜欢的网页搜索引擎中输入“C#对象相等”。如果您有适当的相等比较器,您可以执行'Assert.AreEqual(_Customer,actual)'。 – CodeCaster