MSTEST0026: A feltételes hozzáférés elkerülése az állításokban
Tulajdonság | Érték |
---|---|
Szabályazonosító | MSTEST0026 |
Cím | A feltételes hozzáférés elkerülése az állításokban |
Kategória | Használat |
A javítás kompatibilitástörő vagy nem törik | Nem törés |
Alapértelmezés szerint engedélyezve | Igen |
Alapértelmezett súlyosság | Információ |
Bevezetés a verzióba | 3.5.0 |
Ok
Ez a szabály akkor hoz létre diagnosztikát, ha egy null feltételes operátort(?.)
?[]
tartalmazó argumentumot ad át az alábbi helyességi módszereknek:
Assert.IsTrue
Assert.IsFalse
Assert.AreEqual
Assert.AreNotEqual
Assert.AreSame
Assert.AreNotSame
CollectionAssert.AreEqual
CollectionAssert.AreNotEqual
CollectionAssert.AreEquivalent
CollectionAssert.AreNotEquivalent
CollectionAssert.Contains
CollectionAssert.DoesNotContain
CollectionAssert.AllItemsAreNotNull
CollectionAssert.AllItemsAreUnique
CollectionAssert.AllItemsAreInstancesOfType
CollectionAssert.IsSubsetOf
CollectionAssert.IsNotSubsetOf
StringAssert.Contains
StringAssert.StartsWith
StringAssert.EndsWith
StringAssert.Matches
StringAssert.DoesNotMatch
Szabály leírása
Az egységtesztekben szereplő állítások célja bizonyos feltételek teljesülésének ellenőrzése. Ha egy feltételes hozzáférési operátort használ egy helyességi feltételben, egy további feltételt vezet be, amely az elérni kívánt objektum állapotától függően teljesülhet vagy nem teljesülhet. Ez inkonzisztens teszteredményekhez vezethet, és kevésbé egyértelművé teheti a tesztet.
Szabálysértések kijavítása
Győződjön meg arról, hogy az argumentumok nem tartalmazzák (?.)
vagy ?[]
továbbítják az állítási módszereknek. Ehelyett végezze el a null értékű ellenőrzéseket az állítás végrehajtása előtt.
Company? company = GetCompany();
Assert.AreEqual(company?.Name, "Contoso"); // MSTEST0026
StringAssert.Contains(company?.Address, "Brazil"); // MSTEST0026
// Fixed code
Assert.IsNotNull(company);
Assert.AreEqual(company.Name, "Contoso");
StringAssert.Contains(company.Address, "Brazil");
Mikor kell letiltani a figyelmeztetéseket?
Nem javasoljuk, hogy letiltsa a szabály figyelmeztetéseit.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: