要检查两个Iterable是否具有相同的大小,我可以用Java编写assertJ
assertThat(elvesRings).hasSameSizeAs(trilogy);
C#中最接近的等价物是什么?
到目前为止我只有
Assert.AreEqual(elvesRings.Count, trilogy.Count);
答案 0 :(得分:0)
使用FluentAssertions,您可以使用:
elvesRings.Should().HaveSameCount(trilogy);
答案 1 :(得分:0)
最简单的方法是在每个IEnumerable<T>
上调用count(类似于Java的Iterable
接口):
Assert.AreEqual(elvesRings.Count(), trilogy.Count());
请注意,Count
被称为方法而不是属性。这是因为当使用IEnumerable<T>
count是一个扩展方法时,并且在没有参数的情况下调用它时,它只计算底层集合中的所有内容,即使该集合没有Count属性。
这适用于MS-TEST和NUnit。
答案 2 :(得分:0)
很容易推出自己的扩展方法来做到这一点,这有点像:
public static bool hasSameSizeAs(this IEnumerable first, IEnumerable second)
{
return first.Count() == second.Count();
}
免责声明:错误检查,IEnumerable的潜在多次迭代等。