ReSharper 2025.2 Help

代码检查:NUnit。 隐式未指定的 null 值。

此检查报告传递给带有 [Sequential] 属性的 NUnit 测试的隐式值。

当您在一个测试中使用 [Sequential] 属性,并且多个参数带有 [Values] 属性时,生成的测试用例数量将与具有最大参数数量的 [Values] 属性相对应。 对于参数较少的属性,NUnit 将隐式使用 null 作为引用类型的值或值类型的默认值。

例如,对于以下测试

[Test, Sequential] public void MyTest( [Values(1, 2, 3)] int num, [Values("A", "B")] string str) { // do something }

NUnit 将生成 3 个测试用例,因为第一个 [Values] 属性使用了 3 个参数,但在第三个用例中将使用 null ,因为第二个属性仅使用了 2 个参数:

MyTest(1, "A"); MyTest(2, "B"); MyTest(3, null);

尽管这符合 NUnit 规范,但隐式值可能会导致意外的测试结果。 为避免这种情况,建议测试中的所有 [Values] 属性具有相同数量的参数。

最后修改日期: 2025年 9月 27日