You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fluent Assertions最新版泛型对象等效比较如何排除指定参数

解决方案

在Fluent Assertions最新稳定版(6.x+)中,被标记为过时的SelectedMemberPath可以直接用Path属性平替,二者返回值逻辑完全一致:都是从根比对对象出发、到当前被校验成员的点分隔属性路径字符串,不需要调整你原有的前缀、后缀匹配规则。

如果你的比对逻辑涉及集合/数组元素,需要把索引位置也纳入路径匹配规则,可以使用同场景属性PathAndIndex,会返回类似Order.Items[2].CreateTime带索引的完整路径。

替换后的方法实现如下:

private static bool IsEquivalentTo(object request, object expectedRequest)
{
    request.Should().BeEquivalentTo(expectedRequest, config => config
        .Excluding(c => c.Path.EndsWith("Id"))
        .Excluding(c => c.Path.EndsWith("Date"))
        .Excluding(c => c.Path.EndsWith("Equipment"))
        .Excluding(c => c.Path.EndsWith("Partners"))
        .Excluding(c => c.Path.StartsWith("Warranty"))
    );
    return true;
}

补充说明:如果你的排除规则不需要匹配嵌套属性,仅需要按当前成员的名称筛选,可以直接使用c.Name属性匹配,性能会比全路径匹配略高,但你当前的跨实体通用排除规则用Path是100%兼容原有逻辑的,不需要额外调整。

内容的提问来源于stack exchange,提问作者Adrià Arquimbau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 21:15:43