次の方法で共有


MSTEST0052: 明示的な 'DynamicDataSourceType' を渡さないようにし、既定の自動検出動作を使用する

プロパティ 価値
ルール識別子 MSTEST0052
タイトル 明示的な 'DynamicDataSourceType' を渡さないようにし、既定の自動検出動作を使用する
カテゴリ Usage
修正が破壊的であるか非破壊的であるか Non-breaking
既定で有効 イエス
既定の重大度 Warnung
バージョン で導入された 3.11.0
コード修正はありますか イエス

原因

DynamicDataAttributeでは、既定のPropertyを使用する代わりに、MethodまたはAutoDetectを明示的に指定します。

ルールの説明

MSTest 3.8 以降では、DynamicDataSourceType.AutoDetect コンストラクターの DynamicDataSourceType パラメーターの既定値は DynamicDataAttribute です。 この機能強化では、データ ソースがプロパティ、メソッド、またはフィールドのいずれであるかを自動的に検出するため、ソースの種類を明示的に指定する必要がなくなります。 AutoDetectを使用すると、コードの保守性が高くなり、詳細度が低下します。

違反を修正する方法

DynamicDataSourceType属性から明示的なDynamicData パラメーターを削除し、フレームワークがソースの種類を自動検出できるようにします。

たとえば、次の内容を変更します。

public static IEnumerable<object[]> TestData { get; } = new[]
{
    new object[] { 1, 2, 3 },
    new object[] { 4, 5, 9 }
};

[TestMethod]
[DynamicData(nameof(TestData), DynamicDataSourceType.Property)]
public void TestMethod(int a, int b, int expected)
{
    Assert.AreEqual(expected, a + b);
}

この行を次のように変更します。

public static IEnumerable<object[]> TestData { get; } = new[]
{
    new object[] { 1, 2, 3 },
    new object[] { 4, 5, 9 }
};

[TestMethod]
[DynamicData(nameof(TestData))]
public void TestMethod(int a, int b, int expected)
{
    Assert.AreEqual(expected, a + b);
}

警告を抑制するタイミング

このルールの警告を抑制しないでください。 アナライザーの提案に従うと、テスト コードのノイズが少なくなります。