MSTest tasarım kuralları

Tasarım kuralları, uygun tasarıma ve iyi uygulamalara uygun test paketleri oluşturmanıza ve sürdürmenize yardımcı olur. Bu kurallar test yapısına, en iyi yöntemlere ve sürdürülebilir test koduna yol açan yaygın desenlere odaklanır.

Bu kategorideki kurallar

Kural Kimliği Başlık Severity Düzeltme Mevcut
MSTEST0004 Genel türler, test sınıfları olarak tanımlanmalıdır. Bilgi Yes
MSTEST0006 ExpectedException özniteliğinden kaçının. Bilgi Yes
MSTEST0015 Test metodu ihmal edilmemelidir. Hiçbiri (seçmeli) Hayı
MSTEST0016 Test sınıfı test yöntemine sahip olmalıdır. Bilgi Hayı
MSTEST0019 Oluşturucular yerine TestInitialize'i tercih edin. Hiçbiri (seçmeli) Yes
MSTEST0020 Oluşturucuları TestInitialize yerine tercih edin. Hiçbiri (seçmeli) Yes
MSTEST0021 TestCleanup yerine Dispose'ı tercih edin. Hiçbiri (seçmeli) Yes
MSTEST0022 Dispose yerine TestCleanup'ı tercih edin. Hiçbiri (seçmeli) Yes
MSTEST0025 Assert.Fail'i daima yanlış olan koşullar yerine tercih edin. Bilgi Yes
MSTEST0029 Public yöntemi test yöntemi olmalıdır. Bilgi Yes
MSTEST0036 Gölgelendirme kullanmayın. Uyarı Hayı
MSTEST0044 DataTestMethod yerine TestMethod'i tercih edin. Bilgi Yes
MSTEST0045 Zaman aşımı için işbirliğine dayalı iptali kullanın. Bilgi Yes
MSTEST0066 [Ignore] bir gerekçe belirtmelidir. Bilgi Hayı

Yaygın senaryolar

Test sınıfı yapısı

Test sınıfları oluştururken, bu kurallar uygun tasarımın sağlanmasına yardımcı olur:

  • MSTEST0004: Yardımcı sınıfları dahili tutun, yalnızca test sınıfları genel olmalıdır.
  • MSTEST0016: Test sınıflarının en az bir test yöntemi içerdiğine emin olun.
  • MSTEST0029: Test sınıflarındaki genel yöntemler test yöntemleri olmalıdır.

Başlatma kalıpları

MSTest hem oluşturucuları hem de TestInitialize yöntemlerini destekler. Bu birbirini dışlayan kurallar tutarlı bir desen uygulamanıza olanak sağlar:

  • MSTEST0019: Başlatma için TestInitialize'ı zorunlu kılma (zaman uyumsuz senaryolar için kullanışlıdır).
  • MSTEST0020: Oluşturucuları başlatma için zorunlu kılma (salt okunur alanlar için daha iyi).

Temizleme desenleri

Benzer şekilde Dispose ile TestCleanup arasında seçim yapın:

  • MSTEST0021: Temizleme için Dispose düzenini zorunlu kılma.
  • MSTEST0022: Temizleme için TestCleanup'ı zorunlu kılma.

Daha iyi onaylar

  • MSTEST0006: Daha iyi duyarlık için [ExpectedException] yerine Assert.ThrowsExactly kullanın.
  • MSTEST0025: Assert.IsTrue(false) yerine Assert.Fail kullanın.

Test kalitesi

  • MSTEST0015: Yok sayılan testleri işaretleme (isteğe bağlı kural).
  • MSTEST0036: Temel sınıf üyelerini gölgelendirmekten kaçının.
  • MSTEST0044: Veri temelli test gerekmiyorsa TestMethod kullanın.
  • MSTEST0045: Zaman aşımı işleme için iptal belirteçlerini etkinleştirin.
  • MSTEST0066: üzerinde [Ignore]bir gerekçe iletisi sağlayın.