Delen via


MSTest-ontwerpregels

Met ontwerpregels kunt u testsuites maken en onderhouden die voldoen aan de juiste ontwerp- en goede procedures. Deze regels richten zich op teststructuur, best practices en algemene patronen die leiden tot onderhoudbare testcode.

Regels in deze categorie

Regel-id Title Severity Oplossing beschikbaar
MSTEST0004 Openbare typen moeten testklassen zijn. Informatie Yes
MSTEST0006 Vermijd het kenmerk ExpectedException. Informatie Yes
MSTEST0015 Testmethode mag niet worden genegeerd. Geen (opt-in) Nee.
MSTEST0016 Testklasse moet een testmethode hebben. Informatie Nee.
MSTEST0019 Geef de voorkeur aan TestInitialize over constructors. Geen (opt-in) Yes
MSTEST0020 Gebruik bij voorkeur constructors boven TestInitialize. Niet geselecteerd (opt-in) Yes
MSTEST0021 Geef de voorkeur aan Dispose boven TestCleanup. Geen (opt-in) Yes
MSTEST0022 Geef de voorkeur aan TestCleanup over Verwijdering. Geen (opt-in) Yes
MSTEST0025 Geef de voorkeur aan Assert.Fail over altijd onwaar voorwaarden. Informatie Yes
MSTEST0029 De openbare methode moet een testmethode zijn. Informatie Yes
MSTEST0036 Gebruik geen schaduw. Waarschuwing Nee.
MSTEST0044 Geef de voorkeur aan TestMethod over DataTestMethod. Informatie Yes
MSTEST0045 Gebruik coöperatieve annulering voor een timeout. Informatie Yes

Algemene scenario's

Klassestructuur testen

Bij het maken van testklassen zorgen deze regels voor een goed ontwerp:

  • MSTEST0004: Houd helperklassen intern, alleen testklassen moeten openbaar zijn.
  • MSTEST0016: Zorg ervoor dat testklassen ten minste één testmethode bevatten.
  • MSTEST0029: Openbare methoden in testklassen moeten testmethoden zijn.

Initialisatiepatronen

MSTest ondersteunt zowel constructors als TestInitialize-methoden. Met deze wederzijds exclusieve regels kunt u een consistent patroon afdwingen:

  • MSTEST0019: TestInitialize afdwingen voor initialisatie (handig voor asynchrone scenario's).
  • MSTEST0020: Construeerders afdwingen voor initialisatie (beter voor niet-wijzigbare velden).

Opschoningspatronen

Kies op dezelfde manier tussen Verwijderen en TestCleanup:

  • MSTEST0021: Verwijderingspatroon afdwingen voor opschonen.
  • MSTEST0022: De TestCleanup-methode afdwingen voor opschoning.

Betere beweringen

  • MSTEST0006: Gebruik Assert.ThrowsExactly in plaats van [ExpectedException] voor betere precisie.
  • MSTEST0025: Gebruik Assert.Fail in plaats van Assert.IsTrue(false).

Testkwaliteit

  • MSTEST0015: Genegeerde tests markeren (opt-in-regel).
  • MSTEST0036: Vermijd het schaduwen van basisklasseleden.
  • MSTEST0044: TestMethod gebruiken, tenzij gegevensgestuurde tests nodig zijn.
  • MSTEST0045: Cancellatietokens inschakelen voor timeoutverwerking.