Fluentassertions.ShouldBeEquivalentTo 中的 Ignoredatamember

Posted

技术标签:

【中文标题】Fluentassertions.ShouldBeEquivalentTo 中的 Ignoredatamember【英文标题】:Ignore DataMember in Fluent Assertions.ShouldBeEquivalentTo 【发布时间】:2017-08-28 23:54:37 【问题描述】:

我正在使用 FluentAssertions 库来验证序列化是否使用 DataContractSerializer 按预期工作。

我正在序列化的许多对象在某些属性上都有[IgnoreDataMember] 属性。

在执行ShouldBeEquivalentTo 断言时,有没有办法指示流畅的断言忽略忽略的数据成员?

【问题讨论】:

【参考方案1】:

你可以做类似的事情

actual.ShouldBeEquivalentTo(expected, options => options.Excluding(info => info.RuntimeType.GetCustomAttributes().Any()));

info 对象属于ISubjectInfo 类型,并提供有关所涉及属性的各种信息。

【讨论】:

只是我,还是这个答案不起作用(不再)?另外:info 不是ISubjectInfo.. 类型 5.0 中有相当多的重大变化。 我怀疑是这样。但是我找不到解决问题的新方法。我想出的最好的办法是序列化两个对象并比较结果。 在 5.0 中,语法已更改为 actual.Should().BeEquivalent()。其余选项相同。

以上是关于Fluentassertions.ShouldBeEquivalentTo 中的 Ignoredatamember的主要内容,如果未能解决你的问题,请参考以下文章