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.
| Nemovitost | Hodnota |
|---|---|
| ID pravidla | MSTEST0038 |
| název | Nepoužívejte Assert.AreSame ani Assert.AreNotSame s typy hodnot. |
| kategorie | Použití |
| Nepřerušované | |
| Povoleno ve výchozím nastavení | Ano |
| Výchozí závažnost | Varování |
| Představeno ve verzi | 3.8.0 |
| Existuje oprava kódu | Ano |
Příčina
Použití Assert.AreSame nebo Assert.AreNotSame s jedním nebo oběma argumenty typu hodnoty.
Popis pravidla
Assert.AreSame a Assert.AreNotSame pracují porovnáváním odkazu daného expected/notExpected a skutečných argumentů prostřednictvím ReferenceEquals. Proto při předávání hodnotového typu je zabalen.
Pokud používáte AreSame, assert vždy selže. Pokud používáte AreNotSame, bude kontrolní výraz vždy předávat.
Pro AreSamejediný případ, kdy tato aserce projde, nastává, pokud oba argumenty jsou typy hodnot, které mohou obsahovat null, a jejich hodnoty jsou obě null. V tomto případě je jasnější mít dvě samostatná Assert.IsNull volání.
Jak opravit porušení
Místo Assert.AreEqual a Assert.AreNotEqualpoužívejte Assert.AreSame a Assert.AreNotSame.
Pokud používáte Assert.AreSame a oba argumenty jsou hodnotové typy s možnou hodnotou null, jejichž hodnoty mají být null, můžou být dvě samostatná volání Assert.IsNull vhodnější než AreEqualv závislosti na záměru testu.
Kdy potlačit upozornění
Nepotlačujte varování z tohoto pravidla. Ignorování tohoto pravidla povede k potvrzení, které bude buď vždy neúspěšné, nebo vždy úspěšné.