MSTEST0038: Değer türleriyle 'Assert.AreSame' veya 'Assert.AreNotSame' kullanmayın
Mülk | Değer |
---|---|
Kural Kimliği | MSTEST0038 |
Başlık | Değer türleriyle 'Assert.AreSame' veya 'Assert.AreNotSame' kullanmayın |
Kategori | Kullanım |
Düzeltmesi bozuk veya hataya neden olmayan | Kesintisiz |
Varsayılan olarak etkin | Evet |
varsayılan önem derecesi | Uyarı |
Versiyon'de tanıtıldı | 3.8.0 |
bir kod düzeltmesi var mı? | Evet |
Neden
Assert.AreSame veya Assert.AreNotSame'in, bir veya her iki bağımsız değişkenin de bir değer türü olduğu durumlarda kullanılması.
Kural açıklaması
Assert.AreSame ve Assert.AreNotSame, verilen expected
/'nın ve gerçek bağımsız değişkenlerin notExpected
'sü üzerinden ReferenceEquals
ile karşılaştırılarak çalışır. Bu nedenle, bir değer türü geçirdiğinizde,kutulanmış
AreSame
kullanılıyorsa, assert ifadesi her zaman başarısız olur.
AreNotSame
kullanılıyorsa, doğrulama her zaman geçer.
AreSame
için, onayın geçerli olduğu tek durum, her iki bağımsız değişkenin de null değere sahip null değer türleri olmasıdır. Bu durumda, iki ayrı Assert.IsNull
çağrısı yapmak daha net olur.
İhlalleri düzeltme
Assert.AreEqual
ve Assert.AreNotEqual
yerine Assert.AreSame
ve Assert.AreNotSame
kullanın.
Assert.AreSame
kullanılıyorsa ve her iki bağımsız değişken de değerleri null olması beklenen null atanabilir değer türleriyse, testin amacına bağlı olarak iki ayrı Assert.IsNull
çağrısı AreEqual
'den daha uygun olabilir.
Uyarıların ne zaman bastırılması gerekiyor?
Bu kurala ait uyarıyı gizlemeyin. Bu kuralı yoksaymak, her zaman başarısız olacak veya her zaman başarılı olacak bir doğrulamaya neden olur.