Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
| Propriedade | Valor |
|---|---|
| ID da regra | MSTEST0052 |
| Título | Evite passar um 'DynamicDataSourceType' explícito e use o comportamento de deteção automática padrão |
| Categoria | Usage |
| A correção é invasiva ou não invasiva | Non-breaking |
| Ativado por padrão | Yes |
| Severidade padrão | Advertência |
| Introduzido na versão | 3.11.0 |
| Existe uma correção de código | Yes |
Motivo
A DynamicDataAttribute especifica Property explicitamente ou Method em vez de usar o padrão AutoDetect.
Descrição da regra
Começando com MSTest 3.8, DynamicDataSourceType.AutoDetect é o valor padrão para o DynamicDataSourceType parâmetro no DynamicDataAttribute construtor. Esse aprimoramento deteta automaticamente se a fonte de dados é uma propriedade, método ou campo, eliminando a necessidade de especificar explicitamente o tipo de fonte. O uso AutoDetect torna o código mais fácil de manter e reduz a verbosidade.
Como corrigir violações
Remova o DynamicDataSourceType parâmetro explícito DynamicData do atributo e deixe a estrutura detetar automaticamente o tipo de origem.
Por exemplo, altere isto:
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);
}
Para isso:
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);
}
Quando suprimir avisos
Não suprima avisos desta regra. Seguir a sugestão do analisador leva a menos ruído no código de teste.