我有一个公共类RuleInfo
,它是由内部类Rule
创建的。
private static RuleInfo CreateRuleInfo(Rule r)
{
return new RuleInfo
{
RuleCode = r.RuleId,
DisplayName = r.RuleCode,
Description = r.Description,
LegacyRuleCode = null
};
}
它们的属性名称不同,因此 ShouldBeEquivalentTo()
或 ShouldAllBeEquivalentTo()
无法使用。
现在我正在手动/明确地进行比较:
foreach (var x in Enumerable.Zip(infs, rules, (i, r) => new { Info = i, Rule = r }))
{
x.Info.ShouldBeEquivalentTo(
new
{
RuleCode = x.Rule.RuleId,
DisplayName = x.Rule.RuleCode,
Description = x.Rule.Description,
LegacyRuleCode = (string)null
});
}
有没有更好的、更紧凑的、不那么明确的、更易读的方法?