Свободные Утверждения Должны AllBeEquivalentTo

Я не уверен, было ли это в старой версии FluentAssertions, но я бы хотел сравнить коллекцию с другой коллекцией. У меня ДТО вроде так:

public class UserDTO
{
    public int Id { get; set; }
    public string Username { get; set; }
}

У меня есть два списка, которые я хотел бы сравнить.

 List<UserDTO> createdUsers = this.GetCreatedUser();
 var expectedResults = this.dbContext.Users.Top(10);

Самое близкое, что я вижу, должно быть эквивалентно:

 createdUsers.Should().AllBeEquivalentTo(expectedResults)

но когда я пытаюсь передать свои исключения, кажется, что он работает, предоставляя мне исключения для списка, а не для самой сущности.

Я хотел бы сравнить два списка из них, исключая свойство Id. Я мог поклясться, была функция под названием ShouldAllBeEquivalentTo который взял в опциях, чтобы исключить,

createdUsers.ShouldAllBeEquivalentTo(expectedResults, o => o.Excluding(x => x.Id);

Как я могу сравнить коллекции, исключая свойства в сравнении?

1 ответ

Решение

Документация предлагает следующее, когда дело доходит до исключений с коллекциями и словарями

createdUsers.Should().BeEquivalentTo(expectedResults, options => options.Excluding(_ => _.Id));

Цитата из документации:

чтобы утверждать, что все экземпляры OrderDto структурно равны одному объекту:

orderDtos.Should().AllBeEquivalentTo(singleOrder);

Сравнение графов эталонных объектов: словари и словари

Другие вопросы по тегам