C# 对于连续的Shouldly断言是否有一个重竖琴模式?
我正在尝试提出一种重新夏普模式来应用于连续的Shouldly断言。 例如,我有这些支票:C# 对于连续的Shouldly断言是否有一个重竖琴模式?,c#,resharper,shouldly,C#,Resharper,Shouldly,我正在尝试提出一种重新夏普模式来应用于连续的Shouldly断言。 例如,我有这些支票: field1.ShouldNotBeNull(); field2.ShouldBe(expectedField2Value); 在这种情况下,应将其替换为: this.ShouldSatisflyAllConditions( () => field1.ShouldNotBeNull(), () => field2.ShouldBe(expectedFie
field1.ShouldNotBeNull();
field2.ShouldBe(expectedField2Value);
在这种情况下,应将其替换为:
this.ShouldSatisflyAllConditions(
() => field1.ShouldNotBeNull(),
() => field2.ShouldBe(expectedField2Value));
如果这是唯一的情况,也没有问题,但问题是,有很多不同的可能性,我目前管理的模式没有涵盖。我试图做到的是,每当我得到两个或更多的任意类型的顺序检查(ShouldBeNull、ShouldBeNull、ShouldBeNull、ShouldContain等)时,我都会被警告将所有这些检查都放在shouldbenfullconditions块中,因为如果我将其作为单独的断言保留,一旦一个失败,测试就会停止运行,而不是在后一种情况下给我一个失败的清单。
我面临的问题是:
this.ShouldSatisfyAllConditions(
() => $pageStyleProperty$.ShouldNotBeNull(),
() => $_editorObject$.ShouldNotBeNull());
如果您真的想这样做,可以使用params操作[]
public void ShouldSatisfyAllConditions(params Action[] assertions)
{
foreach (var assertion in assertions)
{
assertion?.Invoke();
}
}
谢谢,但是应该已经提供了一个ShouldSatisfyAllConditions函数。我的问题是找到任何存在两个或多个连续断言的实例,并将其重构到shouldstatisfyallconditions块中。很抱歉,误读了您的问题您希望分析器找到这些场景。我的错。
public void ShouldSatisfyAllConditions(params Action[] assertions)
{
foreach (var assertion in assertions)
{
assertion?.Invoke();
}
}