Бөлісу құралы:


MSTEST0052. Избегайте передачи явного параметра DynamicDataSourceType и использования поведения автоматического обнаружения по умолчанию

Недвижимость Ценность
Идентификатор правила MSTEST0052
Заголовок Избегайте передачи явного типа DynamicDataSourceType и используйте поведение автоматического обнаружения по умолчанию.
Категория Usage
Исправление является разрушающим или неразрушающим Non-breaking
Включен по умолчанию Да
Серьезность по умолчанию Предупреждение
представлено в версии 3.11.0
Существует ли исправление кода Да

Причина

Явно указывает DynamicDataAttribute или Property вместо использования значения по умолчанию Method.

Описание правила

Начиная с 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);
}

Когда следует подавлять предупреждения

Не подавляйте предупреждения из этого правила. Следование предложению анализатора приводит к снижению уровня шума в тестовом коде.