在FluentAssertions中,为什么应该使用方法而不是属性?

Luk*_*uke 5 .net c# fluent-assertions

在FluentAssertions中,您可以以各种格式进行各种声明.

x.Should().BeEquivalentTo(y);
x.ShouldBeEquivalentTo(y);
Run Code Online (Sandbox Code Playgroud)

都是有效的断言.

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

你也可以断言

x.Should().NotBeNull().And.BeEquivalentTo(y);
Run Code Online (Sandbox Code Playgroud)

这里And是属性而不是方法.不应该AndShould每个都是相同类型的元素(方法/属性)?

TL; DRShould在FluentAssertions而不是属性中 设计方法的设计选择背后是否有正当理由?

Jam*_*ran 11

Should()是一个被添加到类的扩展方法x.您只能添加扩展方法 - C#没有扩展属性.

And是任何类NotBeNull()返回的属性.我们可以控制该类,并可以为其添加实际属性.