Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Designregeln helfen Ihnen beim Erstellen und Verwalten von Testsuiten, die den richtigen Design- und bewährten Methoden entsprechen. Diese Regeln konzentrieren sich auf Die Teststruktur, bewährte Methoden und allgemeine Muster, die zu wartungsfähigem Testcode führen.
Regeln in dieser Kategorie
| Regel-ID | Title | Schweregrad | Fix verfügbar |
|---|---|---|---|
| MSTEST0004 | Öffentliche Typen sollten Testklassen sein. | Info | Yes |
| MSTEST0006 | Vermeiden Sie das ExpectedException-Attribut. | Info | Yes |
| MSTEST0015 | Die Testmethode sollte nicht ignoriert werden. | Keine (Zustimmung erforderlich) | Nein |
| MSTEST0016 | Die Testklasse sollte über eine Testmethode verfügen. | Info | Nein |
| MSTEST0019 | Bevorzugen Sie TestInitialize gegenüber Konstruktoren. | Keine (Zustimmung erforderlich) | Yes |
| MSTEST0020 | Bevorzugen Sie Konstruktoren gegenüber TestInitialize. | Keine (Zustimmung erforderlich) | Yes |
| MSTEST0021 | Bevorzugen Sie Dispose gegenüber TestCleanup. | Keine (Zustimmung erforderlich) | Yes |
| MSTEST0022 | Bevorzugen Sie TestCleanup gegenüber Dispose. | Keine (Zustimmung erforderlich) | Yes |
| MSTEST0025 | Bevorzugen Sie Assert.Fail gegenüber immer-falschen Bedingungen. | Info | Yes |
| MSTEST0029 | Öffentliche Methode sollte Testmethode sein. | Info | Yes |
| MSTEST0036 | Verwenden Sie keine Schattierung. | Warnung | Nein |
| MSTEST0044 | Bevorzugen Sie TestMethod gegenüber DataTestMethod. | Info | Yes |
| MSTEST0045 | Verwenden Sie eine kooperative Abbruchmethode für einen Timeout. | Info | Yes |
Häufige Szenarien
Testen der Klassenstruktur
Beim Erstellen von Testklassen tragen diese Regeln dazu bei, das richtige Design sicherzustellen:
- MSTEST0004: Interne Hilfsklassen beibehalten, sollten nur Testklassen öffentlich sein.
- MSTEST0016: Stellen Sie sicher, dass Testklassen mindestens eine Testmethode enthalten.
- MSTEST0029: Öffentliche Methoden in Testklassen sollten Testmethoden sein.
Initialisierungsmuster
MSTest unterstützt sowohl Konstruktoren als auch TestInitialize-Methoden. Mit diesen sich gegenseitig ausschließenden Regeln können Sie ein einheitliches Muster erzwingen:
- MSTEST0019: Erzwingen von TestInitialize für die Initialisierung (nützlich für asynchrone Szenarien).
- MSTEST0020: Erzwingen von Konstruktoren für die Initialisierung (besser für Readonly-Felder).
Bereinigungsmuster
Wählen Sie in ähnlicher Weise zwischen Dispose und TestCleanup aus:
- MSTEST0021: Dispose-Pattern für die Bereinigung erzwingen.
- MSTEST0022: TestCleanup zur Bereinigung durchführen.
Bessere Assertionen
- MSTEST0006: Verwenden Sie Assert.ThrowsExactly anstelle von [ExpectedException] für eine bessere Genauigkeit.
- MSTEST0025: Verwenden Sie Assert.Fail anstelle von Assert.IsTrue(false).
Testqualität
- MSTEST0015: Ignorierte Tests kennzeichnen (Opt-In-Regel).
- MSTEST0036: Vermeiden Sie das Überschatten von Basisklassenmitgliedern.
- MSTEST0044: Verwenden Sie TestMethod, es sei denn, datengesteuerte Tests sind erforderlich.
- MSTEST0045: Aktivieren sie Abbruchtoken für die Timeoutbehandlung.