SORU
14 EYLÜL 2009, PAZARTESİ


C numara karşı alaycı kullanma zamanı# birim test?

Herkes kurallar ideal senaryo numara alay karşı seçim ima ile, yani, temel el ile ayarlama gelebilir mi?

Biraz bu duruma yaklaşımı nasıl ile karıştı.

CEVAP
14 EYLÜL 2009, PAZARTESİ


Peki çözmek için gereken birkaç şey var. Bilmeniz gereken iki temel şey vardır: İsimlendirme ve en İyi Uygulamaları.

İlk büyük test, Roy Osherove büyük bir video kaynak vermek istiyorum:

Roy Osherove tarafından Test Değerlendirme birimi

Dışarıda olduğunu söyleyerek başladı test koşum bazı yorumları yapılıyor birkaç açık kaynak ile birlikte projeler. Onları burada bulabilirsiniz: http://weblogs.asp.net/rosherove/archive/tags/TestReview/default.aspx

Bu temelde video yorumları bu test size yürüyor nerede koşum ve size iyi ne anlatır ve ne kötü. Çok yararlı.

Roy da anladığım kadarıyla bir kitap var çok iyi.

İsimlendirme

Bu podcast yardımcı olacaktır son derece: http://www.hanselminutes.com/default.aspx?showID=187

Podcast gerçi bir tefsir yapacağım (intro müzik Hanselminutes korkunç):

Temelde her şey bir ile yalıtım çerçevesi(Adedi gibi, Gergedan Alay, Alay Türü, vb) denir. sahte.

Birsahtesırasında kullanılan bir nesnedir bir test kodu test üretim kodu yerine çağırabilirsiniz. Sahte kod yalıtmak için kullanılır diğer parçaları test etmeye çalışıyorlar uygulamanız.

(Esas) sahte iki türü vardır:koçanları vealay ediyor.

Biralaysizi sahte yer kodu test o kadar bunun için dışarı arayabilir ve bu iddia çağrı doğru olan yapıldı parametreleri. Örnek aşağıdaki yapar bu Adedi izolasyon kullanarak çerçeve:

[TestMethod]
public void CalculateTax_ValidTaxRate_DALCallIsCorrect()
{
    //Arrange
    Mock<ITaxRateDataAccess> taxDALMock = new Mock<ITaxRateDataAccess>();
    taxDALMock.Setup(taxDAL => taxDAL.GetTaxRateForZipCode("75001"))
                  .Returns(0.08).Verifiable();

    TaxCalculator calc = new TaxCalculator(taxDALMock.Object);

    //Act
    decimal result = calc.CalculateTax("75001", 100.00);

    //Assert
    taxDALMock.VerifyAll();
}

Birsaplamabir aynidir yerine koymak, alay etme, hariç emin test ettiğiniz kodu yapmak arka tutarlı veri alır çağrı (eğer kodunuzu çağırırsa örneğin, bir veri Erişim Katmanı, bir saplama olur sahte verileri geri dön) ama yok saplama kendisine karşı savunmak. Bu bunu doğrulamak için umurunda değil. yöntem sahte veri erişim adı katman – test için çalışıyoruz başka bir şey. Saplama sağlamak çalıştığınız yöntem almak için yalıtım çalışmak için test.

Burada bir saplama ile bir örnek:

[TestMethod]
public void CalculateTax_ValidTaxRate_TaxValueIsCorrect()
{    
    //Arrange
    Mock<ITaxRateDataAccess> taxDALStub = new Mock<ITaxRateDataAccess>();
    taxDALStub.Setup(taxDAL => taxDAL.GetTaxRateForZipCode("75001"))
                  .Returns(0.08);

    TaxCalculator calc = new TaxCalculator(taxDALStub.Object); 

    //Act
    decimal result = calc.CalculateTax("75001", 100.00);

    //Assert
    Assert.AreEqual(result, 8.00);
}

Test ediyoruz, fark burada bu yöntem yerine çıktı bu yöntem çağrısı yaptı aslında başka bir kaynak.

Adedi gerçekten bir API yapmaz bir alay arasında ayrım ve bir saplama (dikkat edin de ilan edildi Mock<T>), ama kullanım işte tipini belirlemede önemli.

Bu düz ayarlamanıza yardımcı olur umarım.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DJAndrewRyan

    DJAndrewRyan

    22 Ocak 2007
  • How Things Are Made

    How Things A

    17 HAZİRAN 2008
  • parlophone

    parlophone

    28 ŞUBAT 2006