SORU
28 EKİM 2008, Salı


Nasıl birim testi test musun?

MVCStoreFront App Rob Connerys web yayınları izliyordum, ve en sıradan şeyler bile, şey gibi test birimi olduğunu fark ettim:

public Decimal DiscountPrice
{
   get
   {
       return this.Price - this.Discount;
   }
}

Bir test gibi olurdu:

[TestMethod]
public void Test_DiscountPrice
{
    Product p = new Product();
    p.Price = 100;
    p.Discount = 20;
    Assert.IsEqual(p.DiscountPrice,80);
}

Olsa da, ben tüm birim testi, bazen merak ediyorum eğer bu formun test ilk gelişim gerçekten yararlı, örneğin, gerçek bir süreç, 3-4 katmanları üzerinde kodunuzu (İş İstek, Gereksinimleri Belge, Mimari Belge), gerçek tanımlanan iş kuralı (İndirimli Fiyat Fiyat - İndirim olabilir misdefined.

Eğer durum buysa, birim test hiç bir şey ifade etmiyor.

Ayrıca, birim test başarısız olmasının bir diğer nokta

[TestMethod]
public void Test_DiscountPrice
{
    Product p = new Product();
    p.Price = 100;
    p.Discount = 20;
    Assert.IsEqual(p.DiscountPrice,90);
}

Şimdi test hatalı. Basit bir test açıkçası çok önemli değil, ama karmaşık bir iş kuralı test ediyorduk ki. Biz burada ne kazandırır?

İki yıl uygulamanın hayata ileri, hızlı bakım geliştiriciler de devam ediyoruz. Şimdi bu iş kural değişiklikleri ve test tekrar arıza, bazı çaylak geliştirici sonra yanlış test giderir...biz şimdi başarısızlığın bir başka nokta var.

Başarısızlık daha olası puan, gerçek yararlı dönüşü görüyorum, eğer indirimli fiyat yanlışsa, test ekibi hala sorunu bulacaklardır, nasıl birim testleri herhangi bir işten kurtardı?

Burada neyi kaçırıyorum? Lütfen bana TDD sevmeyi öğret, zor bir zaman yararlı olarak bugüne kadar kabul yaşıyorum. İlerici kalmak istiyorum, çünkü ben de istiyorum, ama bu bana mantıklı gelmiyor.

EDİT: test spec zorlamak olur bu insanlar sözü tutmak BİR çift. - Benim deneyim spec oldu yanlış da, daha sık değil, ama belki de bittim çalışmak bir kuruluş olduğu özellikleri yazan insanlar olmamalı yazma özellikleri.

CEVAP
28 EKİM 2008, Salı


İlk olarak, test güvenlik -- asla var 0 emin olabilirsin, ama her bir katman daha fazla güven ve daha kolay kalan sorunları gidermek için bir çerçeve ekler.

İkinci, daha sonra test hangi kendilerini altprogram içine testleri kırabilirsiniz. 20 benzer testler olunca (test) yordam yapma ana testin daha doğru olması muhtemeldir altyordam 20 basit çağırmaları anlamına gelir.

Üçüncü olarak, bazı TDD Bu endişem iddia ediyorum. O, sadece 20 testleri yazmak ve onlar başarılı olursa, aslında bir sınama olduğunu tam olarak emin değilsin. Ama her test olursa ilk olarak size yazdımbaşarısız olduve tamir ettin o zaman, o zaman çok daha gerçekten kodunuzu test olduğundan eminsiniz. IMHO geri ve ileri-bu daha çok zaman alır, ama senin sorununa çözüm için çalışan bir süreçtir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jeremy Gallman

    Jeremy Gallm

    11 NİSAN 2012
  • Kai Moosmann

    Kai Moosmann

    5 Temmuz 2006
  • TurkishRoyal

    TurkishRoyal

    16 Ocak 2007