Sdílet prostřednictvím


MSTEST0052: Vyhněte se předání explicitního typu DynamicDataSourceType a použijte výchozí chování automatického zjišťování.

Vlastnictví Hodnota
Identifikátor pravidla MSTEST0052
Titul Vyhněte se předávání explicitního typu DynamicDataSourceType a použijte výchozí chování automatického zjišťování.
Kategorie Usage
Oprava je destruktivní nebo nedestruktivní Non-breaking
Povoleno ve výchozím nastavení Ano
Výchozí úroveň závažnosti Výstraha
Představeno ve verzi 3.11.0
Existuje oprava kódu. Ano

Příčina

Explicitně DynamicDataAttribute určuje Property nebo Method místo použití výchozího AutoDetect.

Popis pravidla

Počínaje MSTest 3.8, DynamicDataSourceType.AutoDetect je výchozí hodnotou pro parametr DynamicDataSourceType v konstruktoru DynamicDataAttribute. Toto vylepšení automaticky zjistí, jestli je zdrojem dat vlastnost, metoda nebo pole, a eliminuje potřebu explicitně zadat typ zdroje. Díky použití AutoDetect je kód lépe udržovatelný a snižuje úroveň podrobností.

Jak opravit porušení

Odeberte explicitní DynamicDataSourceType parametr z atributu DynamicData a nechte architekturu automaticky zjistit typ zdroje.

Změňte například toto:

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);
}

Na toto:

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);
}

Kdy potlačit upozornění

Nepotlačujte upozornění z tohoto pravidla. Následující návrh analyzátoru vede k menšímu šumu v testovacím kódu.