Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| 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.