Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | Value |
|---|---|
| ID Regola | MSTEST0052 |
| Titolo | Evitare di passare un 'DynamicDataSourceType' esplicito e usare il comportamento di rilevamento automatico predefinito |
| Categoria | Usage |
| La correzione causa un'interruzione o meno | Non causa un'interruzione |
| Abilitato per impostazione predefinita | Yes |
| Gravità predefinita | Avvertimento |
| Introdotto nella versione | 3.11.0 |
| È presente una correzione del codice | Yes |
Motivo
Un DynamicDataAttribute specifica esplicitamente Property o Method anziché usare il predefinito AutoDetect.
Descrizione regola
A partire da MSTest 3.8, DynamicDataSourceType.AutoDetect è il valore predefinito per il DynamicDataSourceType parametro nel DynamicDataAttribute costruttore. Questo miglioramento rileva automaticamente se l'origine dati è una proprietà, un metodo o un campo, eliminando la necessità di specificare in modo esplicito il tipo di origine. L'uso di AutoDetect rende il codice più manutenibile e riduce il livello di dettaglio.
Come correggere le violazioni
Rimuovere il parametro esplicito DynamicDataSourceType dall'attributo DynamicData e consentire al framework di rilevare automaticamente il tipo di origine.
Ad esempio, modificare il codice seguente:
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);
}
In questa:
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 eliminare gli avvisi
Non eliminare gli avvisi da questa regola. Dopo il suggerimento dell'analizzatore si verifica un minor rumore nel codice di test.