gpt4 book ai didi

c# - 使用 `ShouldBeEquivalentTo` 、 `ShouldAllBeEquivalentTo` 和 `BeEquivalentTo`

转载 作者:太空狗 更新时间:2023-10-29 18:31:19 24 4
gpt4 key购买 nike

我在单元测试中使用流畅的断言,但是使用 ShouldBeEquivalentTo , ShouldAllBeEquivalentTo , 和 BeEquivalentTo不清楚。

例如;以下所有语句都通过,因此函数看起来是等效的。

List<string> a = new List<string>() { "james", "wood" };
List<string> b = new List<string>() { "james", "wood" };

a.ShouldBeEquivalentTo(b);
a.ShouldAllBeEquivalentTo(b);
a.Should().BeEquivalentTo(b);

为什么我应该使用一个而不是另一个?

最佳答案

ShouldBeEquivalentToShouldAllBeEquivalentTo相同,将进行递归结构比较。但由于行为是高度可配置的,一些选项支持使用属性表达式来包含或排除某些成员。然而,T在表达式中指的是根对象的类型 ( List<string> ) 当 ShouldBeEquivalentTo 时被使用,并且string如果ShouldAllBeEquivalentTo用来。前者作用于整个对象,而后者作用于 IEnumerable<T>。 .

Should().BeEquivalentTo()是一个更简单的实现,它只会使用 Equals 进行不区分顺序的比较。 .此方法将在下一个重大更改 (v5.x) 中删除。

关于c# - 使用 `ShouldBeEquivalentTo` 、 `ShouldAllBeEquivalentTo` 和 `BeEquivalentTo`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34371857/

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