gpt4 book ai didi

c# - 流畅的断言 ShouldAllBeEquivalentTo

转载 作者:行者123 更新时间:2023-12-02 02:46:50 25 4
gpt4 key购买 nike

我不确定旧版本的 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

关于c# - 流畅的断言 ShouldAllBeEquivalentTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50979353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com