FluentAssertions:应该包含序列的每个元素

Kai*_*Kid 4 c# unit-testing fluent-assertions

我有一个列表,每个元素也应该显示在另一个列表中,但不一定以相同的顺序显示。

我可能可以像这样用 foreach 来做断言

Assert.IsTrue(list1.Count == list2.Count);
foreach(var element in list1)
{
    Assert.IsTrue(list2.Count(e => e.Equals(element)) == 1);
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种使用 fluentAssertions 做到这一点的方法。元素不一定是相等的,而是等价的。它可能是这样的

list1.ShouldAll().BeEquivalentInAnyOrderTo(list2);
Run Code Online (Sandbox Code Playgroud)

但是我找不到任何可以轻松解决我的问题的东西。

使用 FluentAssertions 检查两个列表是否以任何顺序包含等效元素的最简单方法是什么?

use*_*136 7

你离得不远:

list1.Should().BeEquivalentTo(list2);
Run Code Online (Sandbox Code Playgroud)

应该管用。来自:https : //fluentassertions.com/collections/