流利断言 ShouldAllBeEquivalentTo

Fluent Assertions ShouldAllBeEquivalentTo

我不确定旧版本的 FluentAssertions 是否有这个,但我想将一个集合与另一个集合进行比较。我有一个像这样的 dto:

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);

如何在比较中排除属性的同时比较集合?

当涉及到集合和字典的排除时,文档建议如下

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

引用文档:

to assert that all instances of OrderDto are structurally equal to a single object:

orderDtos.Should().AllBeEquivalentTo(singleOrder);

引用Object graph comparison: Collections and Dictionaries