How do I exclude a property of all items in IEnumerable when using ShouldBeEquivalentTo?

StackOverflow https://stackoverflow.com/questions/15361521

Вопрос

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"));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top