ReSharper 2024.3 ヘルプ

コード検査: NUnit。暗黙的に指定されていない null 値。

このインスペクションは、[ シーケンシャル ] 属性(英語)のアノテーションが付けられた NUnit テストに渡される暗黙的な値を報告します。

複数のパラメーターに [Values] 属性のアノテーションが付けられているテストで [Sequential] 属性を使用すると、生成されるテストケースの数は、引数の最大数を持つ [Values] 属性に対応します。引数が少ない属性の場合、NUnit は参照型には null を、値型にはデフォルト値を暗黙的に使用します。

例: 次のテストの場合

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

最初の [Values] 属性が 3 つの引数で使用されるため、NUnit は 3 つのテストケースを生成しますが、2 番目の属性は 2 つの引数のみで使用されるため、3 番目のケースでは null が使用されます。

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

これは NUnit 仕様で許可されていますが、暗黙的な値により予期しないテスト結果が生じる可能性があります。これを回避するには、テスト内のすべての [Values] 属性に同じ数の引数を持つことをお勧めします。