【发布时间】:2022-01-09 19:35:25
【问题描述】:
我正在尝试使用 FluentAssertions object graph comparison 将 DTO 与其各自的实体进行比较。我的实体有一些我的 DTO 没有的额外元数据属性。
我正在尝试使用 ExcludingMissingMembers 选项排除这些额外的属性,甚至通过像这样单独排除每个成员来明确排除这些属性:
result.Entity.Should().BeEquivalentTo(dto, opt => opt
.ExcludingMissingMembers()
.Excluding(x => x.ValidationResult)
.Excluding(x => x.CreatedBy)
.Excluding(x => x.CreatedAt));
但是由于我的 DTO 没有的额外属性,我的测试一直失败。
消息:预期的结果。实体(实体类型)为
实体
{
CreatedAt =
创建者 =
FinancialResourcesOrigins = {劳工,劳工}
ProductsOfInterest = {FixedIncome, FixedIncome}
验证结果 =
},但找到了Dto
{
FinancialResourcesOrigins = {劳工,劳工}
ProductsOfInterest = {FixedIncome, FixedIncome}
}有配置:
- 使用声明的类型和成员
- 按值比较枚举
- 排除成员ValidationResult
- 排除成员 CreatedBy
- 排除成员 CreatedAt
- 按名称匹配成员(或抛出)
- 严格控制字节数组中的项目顺序
- 没有自动转换。
我在这里错过了什么?
【问题讨论】:
标签: c# .net fluentvalidation fluent-assertions