在 FluentAssertions 中,您可以以各种格式提出各种声明。
x.Should().BeEquivalentTo(y);
x.ShouldBeEquivalentTo(y);
都是有效的断言。
为什么 Should
是方法而不是属性?我还没有看到任何 Should
带有参数的例子,所以在我看来它很容易成为一个属性。
你也可以断言
x.Should().NotBeNull().And.BeEquivalentTo(y);
这里,And
是一个属性而不是方法。 And
和 Should
不应该是同一类型的元素(方法/属性)吗?
长话短说
设计选择背后是否有正当理由使 Should
成为 FluentAssertions 中的方法而不是属性?
最佳答案
Should()
是添加到 x
类中的扩展方法。您只能添加扩展方法——C# 没有扩展属性。
And
是 NotBeNull()
返回的任何类的属性。在那里我们可以控制类,并可以向它添加真实的属性。
关于c# - 在 FluentAssertions 中,为什么 Should a method 而不是 property?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25366443/