c# - 在 FluentAssertions 中,为什么 Should a method 而不是 property?

标签 c# .net fluent-assertions

在 FluentAssertions 中,您可以以各种格式提出各种声明。

x.Should().BeEquivalentTo(y);
x.ShouldBeEquivalentTo(y);

都是有效的断言。

为什么 Should 是方法而不是属性?我还没有看到任何 Should 带有参数的例子,所以在我看来它很容易成为一个属性。

你也可以断言

x.Should().NotBeNull().And.BeEquivalentTo(y);

这里,And 是一个属性而不是方法。 AndShould 不应该是同一类型的元素(方法/属性)吗?

长话短说 设计选择背后是否有正当理由使 Should 成为 FluentAssertions 中的方法而不是属性?

最佳答案

Should() 是添加到 x 类中的扩展方法。您只能添加扩展方法——C# 没有扩展属性

AndNotBeNull() 返回的任何类的属性。在那里我们可以控制类,并可以向它添加真实的属性。

关于c# - 在 FluentAssertions 中,为什么 Should a method 而不是 property?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25366443/

相关文章:

c# - 在 C# 中获取屏幕像素颜色的最快方法

c#如何打印arraylist中字符串的字符

c# - 与 ShouldBeEquivalentTo 相反

c# - FluentAssertions 引用未正确导入

c# - 如何调试 "The caller does not have permission"

c# - WPF 双动画无法正常工作 C#

.net - 调用通用函数(使用接口(interface)实现约束)会产生有关缺少约束的错误。我看不到什么?

.net - 紧凑型框架是否支持 Lazy<T>?

c# - FluentAssertions Should().BeEquivalentTo 不比较 EF 动态代理上的运行时派生类型

c# - 在 Jquery 切换按钮中禁用对选定状态的单击