我正在使用流畅的断言比较两个集合,并且给定项目数匹配但项目属性值不匹配,我收到消息说预期项目[2]。要求为假,但发现为真。现在我想做的是,而不是说项目[2]。必需的它应该说出名称。必需的,即我想了解如何使用要在消息中使用的属性之一,以便我可以立即知道它在谈论哪个项目。目前,我必须在该索引的表中查找项目以查看哪个项目不匹配,当它们如此之多时,这变得有点不方便。
例如,将集合与以下类进行比较,其中预期的集合具有 5 个元素,"Name"属性设置为 A、B、C、D 和 E。我想做出流畅的断言告诉我,A.必需或B.Required或C.Required应该是某种东西,但它是另一回事,A.Address应该是某种东西,但它是另一回事B.Address是...依此类推,而不是说项目[0]。必需应该是某些东西,但它是其他项目[1]。必需应该是某种东西,但应该是其他东西,依此类推。
public class Element
{
public string Name {get;set;}
public Required {get;set;}
public Address {get;set;}
}
我试图寻找一些答案,但不知道到底要搜索什么。 如果不是,请告诉我是否可以将问题说得更清楚一点
谢谢
您可以使用以下命令启用跟踪以获取更多详细信息
actual.Should().BeEquivalentTo(expected, options => options.WithTracing());
然后,如果您要覆盖Element
上的ToString()
,则会在跟踪中获得所需的详细信息。