FluentAssertions:如何指定该集合应包含一定数量的匹配谓词的元素?

Posted

技术标签:

【中文标题】FluentAssertions:如何指定该集合应包含一定数量的匹配谓词的元素?【英文标题】:FluentAssertions: how to specify that collection should contain a certain number of elements matching predicate? 【发布时间】:2021-10-18 14:39:09 【问题描述】:

例如。我需要断言该列表:

var list = new List<string>  "James", "Michael", "Tom", "John" ;

应包含一定数量(目前为 2 个)匹配特定谓词的元素:

list.Should().Contain(element => element.StartsWith("J"), 2);

但是这个方法没有这样的重载。 如何在 FluentAssertions 中做到这一点?

【问题讨论】:

网址continuousimprover.com/2012/09/…可以帮忙 【参考方案1】:

你不能。您可以获得的最接近的方法是将该行重写为

list.Where(element =&gt; element.StartsWith("J")).Should().HaveCount(2);

【讨论】:

是否有更依赖于 FluentAssertions 的解决方案?

以上是关于FluentAssertions:如何指定该集合应包含一定数量的匹配谓词的元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 FluentAssertions 测试嵌套集合

如何将子集集合按值(结构平等)与 FluentAssertions 进行比较?

如何在 FluentAssertions 的集合断言中重用自定义对象断言

如何在 FluentAssertions 中为集合中的属性使用排除?

FluentAssertions:如何在每对元素上使用自定义比较来比较两个集合?

使用 FluentAssertions 比较包含不同类型的两个字典集合