集合比较中不匹配项的流利断言消息

时间:2019-10-22 10:57:48

标签: fluent-assertions

我正在使用流利的断言比较两个集合,并且考虑到项目数匹配但项目属性值不匹配,我收到消息说Expected item [2]。要求为False,但发现为True。现在我要做的是而不是说item [2]。Required应该说name.Required,即我想了解如何使用消息中使用的属性之一,以便我可以立即知道它正在谈论的项目。目前,我必须在该索引的表中查找该项目,以查看哪个项目不匹配,而当它们太多时,这将变得不便。

例如将集合与以下类进行比较,在该类中预期集合有5个元素,其“名称”属性设置为A,B,C,D和E。我想流畅地断言告诉我A.Required或B.Required或C.Required是期望是某物,但它又是另外的东西。A.Address期望是某物,但是又是另外的东西。B.Address是...,依此类推,而不是说item [0]。 else item [1]。必填项应该是其他内容,以此类推。

public class Element
{
   public string Name {get;set;}
   public Required {get;set;}
   public Address {get;set;}
}

我尝试寻找一些答案,但不知道要搜索什么。 请让我知道是否可以使问题更清楚

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用

启用跟踪以获取更多详细信息
actual.Should().BeEquivalentTo(expected, options => options.WithTracing());

然后,如果您要在ToString()上覆盖Element,则会在跟踪中获得所需的详细信息。