gpt4 book ai didi

c# - 如何使用流利断言断言集合中的所有项目?

转载 作者:IT王子 更新时间:2023-10-29 04:47:10 24 4
gpt4 key购买 nike

假设我想使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com