首页 > 解决方案 > Fluent Assertions BeEquivalentTo 用于在匹配字符串中具有大小写差异的混合对象

问题描述

我得到了两个具有相同数据的对象,double,long,string 我的问题是对象 A 中的所有字符串都是大写的,对象 B 中的大小写。

objectA.Should.Should().BeEquivalentTo(objectB);

比较失败说

预期成员 stringName 为“Super”,但“SUPER”在“UPER”附近不同

有没有办法说我们比较字符串忽略它是全大写还是转换全大写字符串?

我可以运行一个 foreach 循环遍历所有内容并进行转换,但我想知道是否可以将我的比较与我的流利断言包括在内。

标签: c#fluent-assertions

解决方案


您可以执行以下操作:

objectA.Should.Should().BeEquivalentTo(objectB, 
 opt => opt.Using<string>(ctx => ctx.Subject.Should().BeEquivalentTo(ctx.Expectation)).WhenTypeIs<string>());

BeEquivalentTo令人困惑的部分是有一个string不区分大小写的比较,它与外部无关BeEquivalentTo


推荐阅读