为什么没有断言的 xUnit Fact 类型测试总是通过?

Why does an xUnit Fact type test without assertions always passes?

样本:

[Fact]
public void FooTest(){

}

VS2015 中的结果: 测试通过

我在 .NET 4.6 Framework C# 项目中使用 xUnit NuGet v2.4.1。

如果断言失败,则测试失败。等效地,如果每个断言都成功,则测试通过。让我们更精确和数学化:

  • 如果失败次数不为零,则测试失败。
  • 如果断言数等于成功断言数,则测试通过。

在您的测试用例中,失败次数为零,成功次数等于断言次数;两者都等于零。

规则不是 "every assertion must succeed and there must be at least one assertion"。规则只是 "every assertion must succeed" 并且满足该条件。