c# - Fluent Assertions BeEquivalentTo 用于在匹配字符串中具有大小写差异的混合对象
问题描述
我得到了两个具有相同数据的对象,double,long,string 我的问题是对象 A 中的所有字符串都是大写的,对象 B 中的大小写。
objectA.Should.Should().BeEquivalentTo(objectB);
比较失败说
预期成员 stringName 为“Super”,但“SUPER”在“UPER”附近不同
有没有办法说我们比较字符串忽略它是全大写还是转换全大写字符串?
我可以运行一个 foreach 循环遍历所有内容并进行转换,但我想知道是否可以将我的比较与我的流利断言包括在内。
解决方案
您可以执行以下操作:
objectA.Should.Should().BeEquivalentTo(objectB,
opt => opt.Using<string>(ctx => ctx.Subject.Should().BeEquivalentTo(ctx.Expectation)).WhenTypeIs<string>());
BeEquivalentTo
令人困惑的部分是有一个string
不区分大小写的比较,它与外部无关BeEquivalentTo
。
推荐阅读
- python - FastAPI 在导入主模块时出现导入模块错误
- pyspark - grouping() 显示 pyspark 中的行为与 oracle 不一致
- django - 合并两个 Django 查询集并删除共享相同值的对象
- swiftui - 如何通过解决“类型'[Book]'的值没有成员'name'”在屏幕上显示嵌套数组的成员?
- python - 使用 tf.data 创建 TensorFlow 输入管道时出错
- linux - bash:从 CSV 中识别字符串中的 $HOME,然后在变量中将其用作有效路径
- android - 密封类包裹在 Kotlin 中的工作原理
- javascript - 我正在尝试遵循文档,但是当我按下我用 Pressable 包围的内容时,我的模式没有出现
- python - Visual Studio Code 外部终端中的调试问题(带有 bash 的 Manjaro)
- c# - 颜色组合框和自定义颜色选择器