在我的NUnit/FluentAssertions测试中,我使用以下代码将系统返回的复杂对象与引用对象进行了比较:

    response.ShouldBeEquivalentTo(reference, o => o.Excluding(x => x.OrderStatus)
                                               .Excluding(x => x.Id)
                                               .Excluding(x => x.Items[0].Name)
                                               .Excluding(x => x.Items[0].Article)
                                               .Excluding(x => x.ResponseStatus));

但是,这不完全是我的意图。我想排除Name列表中每个对象的ArticleItems,而不仅限于第0个。如何实现这种情况?

我已经浏览了documentation并没有找到解决方案。我想念什么吗?

最佳答案

Exclusion()的重载提供了ISubjectInfo,您可以将其用于更高级的选择条件。通过这种重载,您可以执行以下操作:

subject.ShouldBeEquivalentTo(expected, config =>
                config.Excluding(ctx => ctx.PropertyPath == "Level.Level.Text"));

09-26 09:47