Visual Studio 2022 代码覆盖分析异常行为

Visual Studio 2022 Code Coverage Analysis Unusual Behavior

我正在使用 NUnit、NSubstitute 和 Visual Studio 2022 来测试 ASP.NET Core 6 服务。我看到一些我不明白的结果。这是一个屏幕截图,显示了代码和覆盖率结果:

颜色编码表示第 71 行(抛出新异常)被覆盖,但第 69 行的 if 仅被部分覆盖。这怎么可能?要到达第 71 行,必须执行 && 运算符两边的两个条件。

回答我自己的问题...

问题是我没有 customer.Dead.HasValue == false 的测试用例,或者换句话说,customer.Dead == null。数据库和实体在这里允许空值,但是没有空值的单元测试。