如何在 FluentAssertions ShouldBeEquivalentTo() 中排除多个属性
How to exclude multiple properties in FluentAssertions ShouldBeEquivalentTo()
使用 FluentAssertions:
我可以使用 ShouldBeEquivalentTo.
排除单个 属性
x.ShouldBeEquivalentTo(y, opts => opts.Excluding(si => !si.PropertyInfo.CanWrite));
但是,如何在使用 ShouldBeEquivalentTo() 时 排除超过 1 属性 ?
你必须为此使用函数而不是表达式。
x.ShouldBeEquivalentTo(y, ExcludeProperties);
private EquivalencyAssertionOptions<xx> ExcludeProperties(EquivalencyAssertionOptions<xx> options)
{
options.Excluding(t => t.CeOperator);
options.Excluding(t => t.CeOperatorName);
options.Excluding(t => t.Status);
options.Excluding(t => t.IsOperational);
return options;
}
您不一定需要单独的方法。像这样流畅地链接多个调用。
x.ShouldBeEquivalentTo(y, opts => opts.Excluding(si => !si.PropertyInfo.CanWrite).Excluding(si => si.SomeOtherProperty));
使用 FluentAssertions:
我可以使用 ShouldBeEquivalentTo.
x.ShouldBeEquivalentTo(y, opts => opts.Excluding(si => !si.PropertyInfo.CanWrite));
但是,如何在使用 ShouldBeEquivalentTo() 时 排除超过 1 属性 ?
你必须为此使用函数而不是表达式。
x.ShouldBeEquivalentTo(y, ExcludeProperties);
private EquivalencyAssertionOptions<xx> ExcludeProperties(EquivalencyAssertionOptions<xx> options)
{
options.Excluding(t => t.CeOperator);
options.Excluding(t => t.CeOperatorName);
options.Excluding(t => t.Status);
options.Excluding(t => t.IsOperational);
return options;
}
您不一定需要单独的方法。像这样流畅地链接多个调用。
x.ShouldBeEquivalentTo(y, opts => opts.Excluding(si => !si.PropertyInfo.CanWrite).Excluding(si => si.SomeOtherProperty));