【发布时间】:2019-12-06 07:04:47
【问题描述】:
我正在尝试比较具有多个属性的两个对象,但需要使用谓词比较特定属性(object1在object2 处没有这些属性的确切值,因此我需要在此处比较部分字符串)。
所以,我正在尝试:
object1.Should().BeEquivalentTo(object2, options => options
.Including(o => o.Property1.StartsWith("something"))
.Including(o => o.Property2.StartsWith("something else")
);
我希望像往常一样比较所有其他属性。
但是,运行上面的代码会抛出异常:
消息:System.ArgumentException:表达式
<Convert(o.Property1.StartsWith("something"), Object)>不能用于选择成员。 参数名称:表达式
我检查了文档,它与我的示例相同(https://fluentassertions.com/objectgraphs/ 上的“选择成员”一章)。
为什么会出现这个异常,我该如何解决?
【问题讨论】:
-
@Nkosi “更好的例子”是什么意思?我有两个具有一组字符串属性的相同类型的对象。我想断言这些对象是相等的,但是对于某些特定属性,断言应该基于谓词 (.StartsWith())。
-
断言
object1.Property1.StartsWith("https://www.google.com")等于object2.Property1 = "https://www.google.com/search?q=test"。
标签: c# .net fluent-assertions