In my NUnit/FluentAssertions tests I compare the complex object returned from my system with a reference one using the following code:
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));
However, this is not exactly what I intended. I'd like to exclude Name
and Article
for every object in Items
list and not only for the 0th. How do I implement this scenario?
I've looked through the documentation and din't find the solution. Am I missing something?
There's an overload of Excluding() that provides an ISubjectInfo that you can use for more advanced selection criteria. With that overload, you can do stuff like:
subject.ShouldBeEquivalentTo(expected, config =>
config.Excluding(ctx => ctx.PropertyPath == "Level.Level.Text"));
来源:https://stackoverflow.com/questions/15361521/how-do-i-exclude-a-property-of-all-items-in-ienumerable-when-using-shouldbeequiv