假设我想使用 fluent-assertions 测试返回一堆以下类型项目的方法确保所有项目都将其 IsActive
标志设置为 true
:
public class Item
{
public bool IsActive { get; set; }
}
为了实现这一点,我可以简单地遍历集合并在 foreach 循环中分别断言每个项目:
var items = CreateABunchOfActiveItems();
foreach (var item in items)
{
item.IsActive.Should().BeTrue("because I said so!");
}
但是有没有更流畅的方式来一次断言整个集合中的每个项目?
最佳答案
推荐的方法是使用OnlyContain
:
items.Should().OnlyContain(x => x.IsActive, "because I said so!");
这些也可以:
items.All(x => x.IsActive).Should().BeTrue("because I said so!");
items.Select(x => x.IsActive.Should().BeTrue("because I said so!"))
.All(x => true);
请注意,最后一行 (.All(x => true)
) 强制为每个项目执行前面的 Select
。
关于c# - 如何使用流利断言断言集合中的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18899755/