Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pravidla návrhu pomáhají vytvářet a udržovat testovací sady, které odpovídají správnému návrhu a osvědčeným postupům. Tato pravidla se zaměřují na strukturu testů, osvědčené postupy a běžné vzory, které vedou k udržovatelnému testovacímu kódu.
Pravidla v této kategorii
| ID pravidla | Title | Závažnost | K dispozici oprava |
|---|---|---|---|
| MSTEST0004 | Veřejné typy by měly být testovacími třídami. | Informace | Ano |
| MSTEST0006 | Vyhněte se atributu ExpectedException. | Informace | Ano |
| MSTEST0015 | Testovací metoda by neměla být ignorována. | Žádné (výslovný souhlas) | Ne |
| MSTEST0016 | Testovací třída by měla mít testovací metodu. | Informace | Ne |
| MSTEST0019 | Preferujte TestInitialize před konstruktory. | Žádné (výslovný souhlas) | Ano |
| MSTEST0020 | Upřednostňujte konstruktory před TestInitialize. | Žádné (výslovný souhlas) | Ano |
| MSTEST0021 | Preferujte Dispose před TestCleanup. | Žádné (výslovný souhlas) | Ano |
| MSTEST0022 | Preferujte TestCleanup před Dispose. | Žádné (výslovný souhlas) | Ano |
| MSTEST0025 | Preferujte Assert.Fail před vždy nepravdivými podmínkami. | Informace | Ano |
| MSTEST0029 | Veřejná metoda by měla být testovací metoda. | Informace | Ano |
| MSTEST0036 | Nepoužívejte stínování. | Výstraha | Ne |
| MSTEST0044 | Preferujte TestMethod před DataTestMethod. | Informace | Ano |
| MSTEST0045 | Použijte kooperativní zrušení pro časový limit. | Informace | Ano |
| MSTEST0066 |
[Ignore] by mělo specifikovat odůvodnění. |
Informace | Ne |
Obvyklé scénáře
Struktura testovací třídy
Při vytváření testovacích tříd pomáhají tato pravidla zajistit správný návrh:
- MSTEST0004: Udržovat pomocné třídy interně, měly by být veřejné pouze třídy testů.
- MSTEST0016: Ujistěte se, že třídy testů obsahují alespoň jednu testovací metodu.
- MSTEST0029: Veřejné metody ve třídách testů by měly být testovací metody.
Vzory inicializace
MSTest podporuje jak konstruktory, tak metody TestInitialize. Tato vzájemně se vylučují pravidla umožňují vynutit konzistentní vzor:
- MSTEST0019: Vynucování inicializace testInitialize (užitečné pro asynchronní scénáře)
- MSTEST0020: Vynucujte konstruktory pro inicializaci (lepší pro pole jen pro čtení).
Vzory čištění
Podobně si vyberte mezi Dispose a TestCleanup:
- MSTEST0021: Dodržujte vzor Dispose pro vyčištění.
- MSTEST0022: Zajistěte TestCleanup pro vyčištění.
Lepší aserce
- MSTEST0006: Pro lepší přesnost použijte Assert.ThrowsExactly místo funkce [ExpectedException].
- MSTEST0025: Místo Assert.IsTrue(false) použijte Assert.Fail.
Kvalita testu
- MSTEST0015: Příznak ignorovaných testů (pravidlo výslovného souhlasu).
- MSTEST0036: Vyhněte se stínování členů základní třídy.
- MSTEST0044: Použijte TestMethod, pokud není potřeba testování řízené daty.
- MSTEST0045: Povolit cancellační tokeny pro řízení časových limitů.
-
MSTEST0066: Zadejte na
[Ignore]zprávu s odůvodněním.