MSTEST0018: DynamicData moet geldig zijn
Eigenschappen | Weergegeven als |
---|---|
Regel-id | MSTEST0018 |
Titel | DynamicData moet geldig zijn |
Categorie | Gebruik |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld | Ja |
Standaard ernst | Waarschuwing |
Geïntroduceerd in versie | 3.6.0 |
Oorzaak
Een methode die is gemarkeerd met [DynamicData]
moet een geldige indeling hebben.
Beschrijving van regel
Methoden die zijn gemarkeerd met [DynamicData]
, moeten ook worden gemarkeerd met [TestMethod]
(of een afgeleid kenmerk).
Het lid van de gegevensbron waarnaar wordt verwezen:
- moet bestaan op het opgegeven type (huidige klasse als er geen type is opgegeven)
- mag geen overbelastingen hebben
- moet van hetzelfde type zijn (methode of eigenschap) als de
DataSourceType
eigenschap - moet zijn
public
- moet zijn
static
- mag niet algemeen zijn
- moet parameterloos zijn
- moet retourneren
IEnumerable<object[]>
,IEnumerable<Tuple<T,...>>
ofIEnumerable<ValueTuple<,...>>
Het lid 'weergavenaam' waarnaar wordt verwezen:
- moet bestaan op het opgegeven type (huidige klasse als er geen type is opgegeven)
- mag geen overbelastingen hebben
- moet een methode zijn
- moet zijn
public
- moet zijn
static
- mag niet algemeen zijn
- moet retourneren
string
- moet exact 2 parameters, het eerste en
MethodInfo
het tweede zijnobject[]
Voorbeeld:
public static string GetDisplayName(MethodInfo methodInfo, object[] data)
{
return string.Format("{0} ({1})", methodInfo.Name, string.Join(",", data));
}
Schendingen oplossen
Zorg ervoor dat het kenmerk overeenkomt met de hierboven beschreven voorwaarden.
Wanneer waarschuwingen onderdrukken
Een waarschuwing van deze regel niet onderdrukken. Als u deze regel negeert, worden gemarkeerde exemplaren overgeslagen of leiden ze tot runtimefouten.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable MSTEST0018
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0018
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0018.severity = none
Zie Hoe codeanalysewaarschuwingen onderdrukkenvoor meer informatie.