Dela via


MSTEST0052: Undvik att skicka en explicit "DynamicDataSourceType" och använd standardbeteendet för automatisk identifiering

Fastighet Värde
Regel-ID MSTEST0052
Titel Undvik att skicka en explicit "DynamicDataSourceType" och använd standardbeteendet för automatisk identifiering
Kategori Usage
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard Yes
Standard allvarlighetsgrad Varning
Introducerad i version 3.11.0
Finns det en kodkorrigering Yes

Orsak

A DynamicDataAttribute anger Property uttryckligen eller Method i stället för att använda standardvärdet AutoDetect.

Regelbeskrivning

Från och med MSTest 3.8 DynamicDataSourceType.AutoDetect är standardvärdet för parametern DynamicDataSourceTypeDynamicDataAttribute i konstruktorn. Den här förbättringen identifierar automatiskt om datakällan är en egenskap, metod eller ett fält, vilket eliminerar behovet av att uttryckligen ange källtypen. Med hjälp av AutoDetect görs koden mer underhållsbar och minskar ordrikedomen.

Så här åtgärdar du överträdelser

Ta bort den explicita DynamicDataSourceType parametern DynamicData från attributet och låt ramverket identifiera källtypen automatiskt.

Ändra till exempel följande:

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

Så här gör du:

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

När du ska ignorera varningar

Ignorera inte varningar från den här regeln. Om du följer analysförslaget leder det till mindre brus i testkoden.