Birim testi nedir?

oy
193

Belirli bir dilde ünite testine 'nasıl' soran birçok soru gördük, ama hiç şüphe 'ne', 'niçin' ve 'ne zaman' soran.

  • Bu ne?
  • Benim için ne yapar?
  • Neden kullanmalıyım?
  • Ben (de değilken) bunu ne zaman kullanmalıyım?
  • bazı ortak tuzaklar ve yanlış nelerdir
Oluştur 04/08/2008 saat 17:27
kaynak kullanıcı
Diğer dillerde...                            


20 cevaplar

oy
182

Birim test kabaca, konuşma testi koduyla izolasyon kodunuzun bitlerini test vardır. akla gelen acil avantajları şunlardır:

  • Testler çalıştırılıyor otomatikleştirmek-muktedir ve tekrarlanabilir hale
  • Sen çok daha ayrıntılı düzeyde test edebilirsiniz bir GUI aracılığıyla test noktası ve tıkla

Test kodu bir dosyaya yazar, eğer daha uygun bir entegrasyon testi olarak kategorize ediyor, bir veritabanı bağlantısı açar veya ağ üzerinden bir şey yapar unutmayın. Entegrasyon testleri iyi bir şey, ama ünite testleri ile karıştırılmamalıdır. Birim test kodu, kısa tatlı ve yürütmek hızlı olmalıdır.

Birim test bakmak için başka bir yolu da öncelikle testleri yazmak olmasıdır. Bu Test-Driven Development (kısaca TDD) olarak bilinir. TDD ek avantajlar getiriyor:

  • yeterli testler geçmesi için gereken - Sen kod spekülatif "Gelecekte bu gerekebilir" yazmayın
  • Yazdığınız kod her zaman testlerle kaplıdır
  • ilk test yazarak, genellikle uzun vadede kod tasarımını geliştirir kodu aramak istediğiniz nasıl düşünmeye zorla ediyoruz.

Şimdi birim test yapmıyoruz, ben bunu başlamak önerilir. Bir kitap alın kavramlar çok transfer aralarında çünkü pratikte herhangi xUnit-kitap yapacağız.

Bazen yazılı birim testleri acı verici olabilir. bu şekilde aldığında, size yardımcı ve "lanet kod yazmak" için günaha karşı birisini bulmaya çalışın. Birim test bir çok bulaşık yıkamak gibi. Her zaman hoş değil, ama temiz senin mecazi mutfak tutar, ve gerçekten temiz olmasını istiyorum. :)


Düzenleme: Bu kadar yaygın olmasa eminim rağmen bir yanlış yaklaşım, akla gelen. Bir proje yöneticisi birim testleri ekibi iki kez tüm kod yazmak yapılmış söylediğini duymuştum. Göründüğü ve bu şekilde hissederse, iyi, sen yanlış yapıyorsun. Sadece testler genellikle gelişimini hızlandırmak yazma, ama aynı zamanda size başka olmazdı göstergesi "şimdi bitti" elverişli verir vermez.

Cevap 04/08/2008 saat 17:36
kaynak kullanıcı

oy
65

Ben (daha iyi bir seçim sadece cevap vermemeyi olabilir rağmen) Dan ile katılmıyorum ... ama ...

Birim test sisteminizin davranışlarını ve işlevselliğini sınamak için kod yazmadan sürecidir.

Açıkçası sizin kod kalitesini artırmak testleri, ama bu birim test sadece yüzeysel bir fayda var. Gerçek faydaları şunlardır:

  1. Eğer davranışı (yeniden düzenleme) değişmez emin yaparken daha kolay teknik uygulamasını değiştirme olun. Düzgün birim test kod agresif / refactored fark olmadan bir şey kırma şansı ile temizlenebilir.
  2. davranışı ekleyerek veya düzeltmeleri yaparken geliştiriciler güven verin.
  3. kodunuzu Belge
  4. sıkı bağlı olan kodunuzun bölümlerini ifade eder. Bu sıkı bağlı oluyor birim test kodu zor
  5. senin API kullanmak ve erken zorluklar aramak için bir yol sağlayın
  6. çok yapışkan olmayan yöntemler ve sınıflar gösterir

Eğer iyiliği için, kendi müşterisine bir sürdürülebilir ve kaliteli ürün sunmak için çünkü onun birim testini gerektiği.

Sana bir sistemde, modeller gerçek dünya davranışı herhangi sistemi veya bir kısmı için kullanmak öneririm. Başka bir deyişle, özellikle de kurumsal gelişim için uygun oluyor. Ben kullanılıp atılan / yardımcı programlar için kullanmak olmaz. Ben testine sorunlu bir sistemin parçaları için kullanmak olmaz (UI yaygın bir örnektir, ama bu her zaman böyle değildir)

En büyük engel geliştiricileri çok büyük bir birim test etmek ya da bir yöntemi bir birim dikkate olmasıdır. Anlamadığınız bu özellikle doğrudur Kontrol inversiyon bu durumda sizin birim testleri her zaman uçtan uca entegrasyon test dönüşecek -. Birim testi bireysel davranışları test etmelidir - ve en yöntemleri birçok davranışlara sahip.

En büyük yanlış kanı programcıları sınamak değil gerektiğidir. Sadece kötü ya da tembel programcılar inanıyoruz. senin Çatı yapan adam bunu test gerekmez mi? Kalp kapağını değiştirmek doktor Yeni bir vana test etmek gerekmez mi? o programcı istemediğiniz şeyleri yapmaya söyleneni ve istemci kabul testi yapabilecekken kodu nasıl davranacağını - - Yalnızca bir programcı onun kod o (QA sınır durumları test edebilir yapması gerektiğini istediği her şeyi yapar test edebilirsiniz kod yapıyor o yapacak ne istemci) ödeme

Cevap 04/08/2008 saat 17:41
kaynak kullanıcı

oy
40

"Sadece yeni bir proje açıp bu özel kodu sınamak" karşıt olarak birim test temel fark, bu oluyor ki otomatik dolayısıyla tekrarlanabilir .

El kodunuzu test, bu kod mükemmel çalışıyor sizi ikna edebilir - o andaki konumunda . Ama ne hakkında hafta sonra, bunun hafif bir değişiklik yaptığında? Eğer zaman elle tekrar tekrar test etmek istekli misiniz şey kodunuzda değiştirir? Büyük olasılıkla değil :-(

Eğer Ama eğer birkaç saniye içinde tek bir tıklama, aynı şekilde, birlikte, istediğiniz zaman testleri , o zaman onlar olacak bir şey bozuldu zaman hemen size gösterir. Hatta olduğunu aklına gelmedi ne zaman - aynı zamanda otomatik oluşturma sürecine birim testleri entegre eğer görünüşte tamamen ilgisiz bir değişiklik kod temeli uzak bir kesiminde herhangi bir şeye zarar yerde, hatta durumlarda hatalar sizi uyaracaktır bir o belirli işlevselliği tekrar test etmek gerekir.

Bu elle test üzerinde birim testlerinin önemli avantajlarından biridir. Ama dahası var, bekle:

  • Birim testleri geliştirme geri besleme döngüsü kısaltmak dramatik: Henüz bağlamın çok unutmuş hangi zaman kodunuzda bir hata var olduğunu bilmek için ayrı test departmanı ile o böylece size saatler sürebilir, hafta sürebilir bulup hatayı düzeltmek; Ünite testleri ile otoh, geri besleme döngüsü saniyelerle ölçülen ve hata düzeltme işlemi bir çizgisinde genellikle edilir :-) "ah sh * t, burada şartıyla kontrol etmek unuttum"
  • Birim testleri etkili bir belge kodunuzun davranışını (anlayışınızı)
  • Birim test kuvvetleri sen sonuçlanır tasarım tercihlerinizi, yeniden değerlendirmek için basit, daha temiz bir tasarım

Birim test çerçeveler, sırayla, kolay yazmak ve testler için yapmak.

Cevap 14/03/2010 saat 18:20
kaynak kullanıcı

oy
29

Üniversitede birim test öğretilen hiçbir zaman ve bunu "get" için biraz zaman aldı. Ben, bu konuda okuma "ah, sağ, otomatik test, sanırım serin olabilir" gitti, sonra da unutverdim.

Diyelim ki büyük bir sistem üzerinde çalışıyoruz ve küçük modülü yazmak diyelim: Gerçekten noktayı anladım önce daha uzun biraz aldı. O, bir sonraki göreve geçmek mükemmel şekilde çalışmaktadır sen kendi adım ile koyun derler. Satır aşağı Dokuz ay ve iki sürüm sonra başkası bazı değişiklik yaptığında görünüşte programın ilgisiz parçası ve modül kırar. Daha da kötüsü, onların değişiklikleri test ve onların kod çalışır, ancak bunlar modül test etmiyoruz; cehennem onlar bile modül bilmiyor olabilir var .

kırık kod bagajda ve kimse bile bilir: Şimdi de bir sorun var. en iyi durumda bir iç test size gemi önce bulur, fakat kod sabitleme geç oyunda pahalı olduğunu. Hiçbir iç tester bulursa Ve ... iyi, o gerçekten çok pahalı alabilirsiniz.

Çözelti birimi testidir. Gayet - - Kodu yazarken Onlar sorunları yakalamak gerekir ama elle yapmış olabilir. Gerçek ödeme artık bambaşka bir proje üzerinde çalışırken onlar satır aşağı sorunları dokuz ay yakalamak edeceğiz yani, ama bir yaz stajyer bu parametreler alfabetik olsaydı Sessizleştirme bakacağız düşünür - ve sonra birim test Eğer geri dönüş yolu başarısız yazdı, ve geri parametre sırasını değiştirir dek birisi stajyer vaziyet atar. Budur "neden" biriminin testleri. :-)

Cevap 19/09/2008 saat 13:45
kaynak kullanıcı

oy
12

Burada birim test ve TDD felsefi profesyoneller üzerinde Chipping TDD aydınlanma (yok aslı veya zorunlu olarak haber) yolunda benim geçici birinci adımlar üzerinde bana vurdu onlar anahtarı "ampul" gözlemlerin birkaçıdır ...

  1. TDD iki kez kod miktarını yazma anlamına gelmez. Deney kodu genellikle yazmak için oldukça hızlı ve acısız ve eleştirel tasarım süreci ve önemli bir parçasıdır.

  2. TDD Eğer kodlama duracağını gerçekleştirmek için yardımcı olur! Kişisel Testler sana şu an için yeterli yaptık ve verdiği durdurmak ve bir sonraki adıma geçebilirsiniz güven vermek.

  3. Testler ve kod birlikte çalışarak daha iyi kod elde etmek. Kodunuz kötü / hatalı olabilir. Kişisel TEST kötü / hatalı olabilir. TDD size oldukça düşük olması İKİ olmanın kötü / arabası şansı bankacılık vardır. düzeltilmesi gereken ama bu hala iyi bir sonuç olduğunu Genellikle kendi testi.

  4. TDD kabızlık kodlama ile yardımcı olur. Sen zorlukla nerede başlar biliyor yapacak çok olduğunu hissi bilir? Eğer sadece bir kaç saat daha ertelemek eğer, Cuma öğleden sonra ... TDD çok hızlı bir şekilde yapmanız gereken ne düşündüğünü eti dışarı verir ve senin hızlı hareket kodlama alır. Ayrıca, deney faresi gibi, hepimizin o büyük yeşil ışığa tepki ve tekrar görmek için daha fazla çalışmaya düşünüyorum!

  5. Benzer şekilde, bu tasarımcı türleri üzerinde çalıştıkları görebilirsiniz. Onlar suyu / sigara / iphone molası için dolaşmaya ve derhal lazım nereye doğru onları görsel ipucu veren bir monitöre dönebilirsiniz. TDD bize benzer şeyler verir. Bu yüzden yaşam müdahale ne zaman lazım nerede olduğunu görmek daha kolaydır ...

  6. "Sık sık çalıştırmak Kusurlu testler hiç yazılı asla mükemmel testlerde çok daha iyi": Ne deniyor Fowler olduğunu düşünüyorum. Bana onlar benim kod kapsama geri kalanı acı eksik olsa bile en yararlı olacağını düşündüğümüzde testleri yazma izni vererek bu yorumlayabilir.

  7. TDD satır aşağı şaşırtıcı şekillerde her türlü yardımcı olur. İyi ünite testleri yapması gereken şeye ne belgeyi yardımcı olabilir, onlar başka bir projeden kodu taşımanız ve olmayan test meslektaşları üzerinde size üstünlük haksız hissi vermek yardımcı olabilir :)

Bu sunum , tüm nefis iyilik test gerektirir için mükemmel bir giriştir.

Cevap 24/08/2008 saat 22:58
kaynak kullanıcı

oy
7

Ben Gerard Meszaros tarafından xUnit Test Desenler kitabı tavsiye etmek istiyorum. Büyük ama birim test büyük bir kaynaktır. İşte o birim test temelleri açıklanır kendi web sitesine bir bağlantıdır. http://xunitpatterns.com/XUnitBasics.html

Cevap 14/03/2010 saat 19:10
kaynak kullanıcı

oy
5

Ben zaman kazanmak için birim testleri kullanırlar.

iş mantığını oluştururken (veya veri erişimi) test işlevselliği sık veya henüz bitmiş olabilir veya olmayabilir ekranlar bir sürü içine şeyler yazarak içerebilir. Bu testleri otomatikleştirme zaman kazandırır.

Benim için birim testleri modülerize testi koşum bir türüdür. kamu görevi başına en az bir test genellikle yoktur. Çeşitli davranışları kapsayacak şekilde ek testler yazın.

Eğer kod geliştirme birimi testlerinde kodunda kaydedilebilir zaman düşünce tüm özel durumlar. Birim testleri de kod nasıl kullanılacağına ilişkin örnekler kaynağı haline gelir.

bana yeni kod kod check-in ve bazı ön uç geliştirici bir sorun bulmak için sonra benim birim testlerinde şey kırar olduğunu fark etmesi çok daha hızlıdır.

veri erişim test için ben de herhangi bir değişiklik varsa veya sonra kendilerini temizlemek testleri yazmaya çalışıyorum.

Birim Testlerin hepsi test şartlarını çözebilecek gidiş değildir. Onlar geliştirme zamanı ve uygulama testi çekirdek kısımlarını kaydetmek mümkün olacak.

Cevap 17/09/2008 saat 01:38
kaynak kullanıcı

oy
5

Bunun üzerinde benim alabilir. Ben birim test gerçek yazılımı anlamına gelir yapar doğrulamak için yazılım testleri yazma pratiği olduğunu söyleyebilirim. Bu başlayan jUnit Java dünyasında ve ile yanı PHP'de en iyi yöntem haline gelmiştir SimpleTest ve PHPUnit . Bu Extreme Programming bir çekirdek uygulamadır ve Kayıt sonrası amaçlandığı şekilde yazılım hala çalıştığından emin olmak için yardımcı olur. Yeterli test kapsamı varsa, büyük üstlenmeden, hata tespit yapmak veya başka sorunlarla tanıtılması çok daha az korku ile hızla özellikler ekleyebilirsiniz.

Tüm birim testleri otomatik olarak çalıştırılabilir zaman en etkili yoldur.

Birim test genellikle OO gelişimi ile ilişkilidir. Temel fikir Kodunuzdaki için çevre kurar ve sonra egzersizleri bir komut dosyası oluşturmak için; Eğer iddialar, bu tür yukarıda belirtilenler gibi alıp daha sonra bir çerçeve kullanarak test komut dosyası çalıştırmak gerekir amaçlanan çıktı belirtmek yazın.

Çerçeve Kodunuzdaki karşı tüm testler ve daha sonra her testin başarılı veya başarısız geri bildirir. Bunun için HTTP arayüzleri mevcut olmasına rağmen PHPUnit, varsayılan olarak Linux komut satırından çalışır. SimpleTest web tabanlı doğası gereği ve IMO, çalışır duruma çok daha kolaydır. xDebug ile birlikte, PHPUnit bazı insanlar çok yararlı buluyorum kod kapsama için otomatik istatistiklerini verebilir.

değişiklikleri kaydetmek zaman o birim testleri otomatik olarak çalıştırılır Bazı takımlar kendi deposundaki revizyon gelen kancalar yazın.

Bu uygulama ile aynı depoda ünite testleri tutmak için iyi bir uygulamadır.

Cevap 05/08/2008 saat 00:53
kaynak kullanıcı

oy
4

Gibi KÜTÜPHANELER NUnit , xUnit veya JUnit kullanarak projelerinizi geliştirmek istiyorsanız sadece zorunludur TDD Kent Beck tarafından popüler bir yaklaşım:

Okuyabiliyorsun Driven Development (TDD) Test Giriş veya Kent Beck'in kitabı Örnek ile: Test Driven Development .

Eğer testler kod "iyi" bir kısmını kapsayacak emin olmak istiyorsanız Ardından, gibi yazılımları kullanabilirsiniz NCover , JCover , PartCover ya da her neyse. Onlar size kod kapsama yüzdesi anlatacağım. Eğer TDD usta olarak ne kadar bağlı olarak, bunu yeterince iyi uygulanan ettiyseniz anlarsınız :)

Cevap 14/03/2010 saat 18:22
kaynak kullanıcı

oy
3

Ben anlamadığınız nokta NUnit (ve benzeri) gibi birim testleri çerçeveler size yardımcı olacağını düşünüyorum otomasyonu orta ölçekli testlere küçük. Genellikle bir GUI testleri (bununla durum çalıştırabilirsiniz NUnit sadece bir düğmeye tıklayarak örneğin) ve daha sonra - umarım - ilerleme çubuğu yeşil kalmaya bakın. Kırmızı dönerse, çerçeve testi başarısız oldu ve tam olarak ne yanlış gitti gösterir. Normal bir birim testte, genellikle örneğin iddialarını kullanmak Assert.AreEqual(expectedValue, actualValue, "some description")- böylece iki değer eşit değilse bir hata "Bazı açıklaması: <expectedValue> ama oldu <actualValue> beklenen" diyerek göreceksiniz.

bir sonuç birim test hızlı test ve geliştiriciler için çok daha rahat yapmak gibi Yani. Eğer aynı proje üzerinde diğer geliştiricilerin inşa sürecini kırmak kalmamak yeni kodu işlemekten önce tüm birim testleri çalıştırabilirsiniz.

Cevap 14/03/2010 saat 18:25
kaynak kullanıcı

oy
3

Birim test uygulamak için gidiyoruz fonksiyon veya modül beklenen (gereksinimler) olarak davranmaya devam ediyor ve aynı zamanda sınır koşulları ve geçersiz girişi gibi senaryolarda nasıl davranacağını emin olmak için emin olmak için bir uygulamadır.

xUnit , NUnit , MbUnit vb testleri yazarken size yardımcı araçlardır.

Cevap 14/03/2010 saat 18:22
kaynak kullanıcı

oy
3

Birim testleri, uygulama kodunu test kod yazmadan hakkındadır.

Birim adının bir parçası aynı anda Küçük kod birimleri test etmek amacıyla (örneğin, bir metodu) ile ilgilidir.

xUnit bu test ile yardımcı vardır - onlar bu konuda yardımcı çerçeveler vardır. Bunun bir kısmı başarısız neyi testi ve hangilerinin geçtiği söylemek testi rayları otomatiktir.

Onlar da elden önce her test ihtiyaç ve tüm testler bittiğinde bunu yıkmak kurulum ortak koduna tesisleri var.

Sen bütün try catch kendini bloke yazmak zorunda kalmadan, beklenen özel durum edildiğini kontrol etmek için bir test olabilir.

Cevap 14/03/2010 saat 18:19
kaynak kullanıcı

oy
3

Kullan Testivus . Bilmen gereken tek şey hemen orada :)

Cevap 17/09/2008 saat 01:48
kaynak kullanıcı

oy
2

Her şeyden önce, Birim test veya otomatik test başka çeşitleri hakkında konuşan olsun (Entegrasyon, Yük, UI testi vs.), önerdiğiniz şeyden önemli fark, bu otomatik olduğunu tekrarlanabilir olduğunu ve herhangi bir insan kaynakları gerektirmez tüketilecek (= kimse testlerini gerçekleştirmek için olan, genellikle bir düğmeye basarak çalıştırın).

Cevap 14/03/2010 saat 18:22
kaynak kullanıcı

oy
2

Test Driven Development çeşit süreli Birimi Testi ele geçirdi. Eski bir zamanlayıcı olarak bundan daha genel bir tanım belirtilecek.

Birim Test aynı zamanda daha büyük bir sistemde tek bir bileşen test anlamına gelir. Bu tek parça Hatta Çoklu sistem uygulamasında tek bir sistem olabilir, vb bir DLL exe, sınıf kütüphanesi olabilir. Yani sonuçta Birim Test daha büyük bir sistemin tek bir parçasını aramak istediğini test olmak biter.

Daha sonra tüm bileşenleri birlikte nasıl test ederek entegre veya sistem testine yukarı hareket olacaktır.

Cevap 24/08/2008 saat 23:34
kaynak kullanıcı

oy
2

Birim test kodunun o birim dayanır altyapılara ihtiyaç duymadan kod birimi (örneğin tek bir fonksiyonu) testidir. yani izolasyon test edin.

Örneğin, test ettiğiniz işlevi bir veritabanına bağlanır ve bir güncelleme yaparsa, bir birim test bu güncelleştirmeyi yapmak istemeyebilirsiniz. Onun bir entegrasyon testi vardı olsaydı ama bu durumda değil.

Yani bir birim test veritabanı güncelleme yan etkileri olmadan test ediyoruz "fonksiyonu" içine işlevselliği egzersiz olacaktır.

Fonksiyonun bir veritabanından bazı sayılar alınır ve daha sonra standart sapma hesaplaması yaptık deyin. Burada ne sınamak çalışıyorsunuz? standart sapma doğru bir şekilde ya da veri tabanına döndürülen olduğu hesaplanmıştır mı?

Bir birim testinde sadece standart sapma doğru hesaplanır olduğunu test etmek istiyorum. bir entegrasyon testinde standart sapma hesaplama ve veri tabanı alma test etmek istiyorum.

Cevap 15/08/2008 saat 18:42
kaynak kullanıcı

oy
1

Eğer birim test yapıyor olmalı Bu yüzden cevaplar.


javascript kapak ünitesi test altında 3 videolar ama genel prensipler çoğu dilleri arasında geçerlidir.

Birim Testi: Dakika Şimdi Daha sonra Saat Will Save - Eric Mann - https://www.youtube.com/watch?v=_UmmaPe8Bzc

JS Birim Testi (çok iyi) - https://www.youtube.com/watch?v=-IYqgx8JxlU

Yazma Test edilebilir JavaScript - https://www.youtube.com/watch?v=OzjogCFO4Zo


Şimdi sadece konu hakkında öğreniyorum yüzden% 100 doğru olmayabilir ve orada daha burada tarif ediyorum olandan kendisine ama birim test benim temel anlayış ayrı tutulur bazı test kodunu (not etmeniz aşağıdadır işlev gerektirir ve geçerli bir dönüş değeri geri alırsa kod sonra kontrol ettiğinden) girişi (argümanlarla ana kodunda bir işlevini çağırır ana kodu). Geçerli bir değerini Eğer testler için kullandığınız birim test çerçevesini geri almak yoksa değeri kırmızı ışıkta almak ve daha sonra hemen önce sorunu çözebilirsiniz geçersizse yeşil ışık (tüm iyi) gösterir aslında hata yakalandı olmayabilir test yapmadan, üretime yeni kodu bırakın.

Yani geçerli kod için testler yazmak ve testini geçecek şekilde kodu oluşturmak. Aylar sonra veya bu işlev için daha önce zaten yazmıştı test kodu şimdi yeniden aday ve test kodlayıcı fonksiyonunda bir mantık hatası tanıtıldı çünkü başarısız veya tamamen şeyler döndürebilir, çünkü ana kod işlevi değiştirmek için başkasının ihtiyacı bu fonksiyon dönmek gerekiyordu değerlerden farklı. Yine yerinde testi olmadan o hata muhtemelen de diğer kod etkileyebilir ve farkedilmeden gidecek şekilde izleyerek bulmak zor olabilir.


Ayrıca kodunuzda geçiyor ve el sayfa tarafından tarayıcı sayfasında yapmak yerine onu test eden bir bilgisayar programı var olması süresini (javascript için birim test) kaydeder. Diyelim ki bir web sayfasında bazı komut dosyası tarafından kullanılan bir işlev değiştirmek diyelim ve onun yeni amacına uygun tüm iyi ve güzel çalışıyor. Ama, en de düzgün çalışması için bu yeni değiştirilmiş işlevine bağlıdır kodunuzda başka bir yere sahip başka bir işlevi olduğunu argümanlar uğruna diyelim. bilgisayarınız tarafından otomatik olarak çalıştırılır yerinde ancak testlerde olmadan ilk işleve yaptığım değişikliklerin sen aslında idam edilene kadar bu fonksiyonu ile bir sorun olduğunu fark etmez, çünkü bu bağımlı işlevi artık çalışmayı durdurabilir ve yalnızca o zaman çünkü ilk işleve yapılan değişikliğin bir hata olduğunu fark, elle bağımlı işlev yürütür komut dosyası içeren bir web sayfasına gidin gerekecek.

Eğer kodlarken olarak bu tür problemlerin yakalayacak uygulamanızı geliştirirken çalıştırılır testleri sahip vurgulamak. safça Eğer üretime dışarı göndermek ve bir süre sonra bir tür kullanıcı (size bir hata raporu gönderir, sen hata noktaya manuel bütün uygulama üzerinden gitmek ve o zaman bile zor olabilir olurdu yerinde testler sahip olmamak hangi bir test çerçevesi içinde hata mesajları) kadar iyi olmayacaktır.


Eğer konunun ilk duymak ve kendi kendine düşünüyorsun zaman, oldukça kafa karıştırıcı Zaten benim kodu test değilim? "Başka bir çerçeve ihtiyacım var neden?" Ve bunun gibi çalışıyor yazdığım kodu zaten gerekiyordu ... Zaten kodunuzu test ancak bir bilgisayar yapıyor daha iyidir Evet. Bir kez olsun bir kod işlevi / birim için yeterince iyi testler yazmak zorunda ve bir değişiklik yaptığınızda gerisi el tüm kodu hala çalışıp çalışmadığını kontrol etmek zorunda kalmadan güçlü cpu tarafından sizin için halledilir senin kodun.

Ayrıca, size istemediğiniz takdirde kodunuzu test birimine yok ama böcek artar tanıtan şansı gibi daha büyük büyümeye başlar Projeniz / kod üs olarak işe yarar.

Cevap 18/07/2015 saat 18:34
kaynak kullanıcı

oy
1

Eğer bok bir yığın verilir ve size mevcut yazılım bir ev gibidir çünkü şimdiki set kırabilir herhangi bir yeni özellik veya kod ekleyerek biliyoruz temizlemenin daimi bir durumda sıkışmış gibi görünse eğer ne yaparsınız kartlar?

Nasıl o zaman birim testi yapabilir?

Küçük bir başlangıç. Sadece girdim Proje birkaç ay öncesine kadar hiçbir birim test vardı. kapsamında o düşük iken, biz sadece hayır kapsama vardı bir dosyayı almak ve "testleri ekle" yi olacaktır.

Şu anda 40'ın üzerinde en fazla% duyuyoruz ve düşük asılı meyve çoğu koparmak başardınız.

(En iyi bölüm bile kapsama bu düşük seviyede, zaten yanlış bir şey yapıyor kod Birçok örnekte yaşamanıza, ve test yakaladı. Bu da daha fazla test eklemek için insanları itmek için büyük bir motivasyon var.)

Cevap 22/08/2008 saat 19:19
kaynak kullanıcı

oy
1

Ben FoxForward 2007 birim testinde bir sunum gitti ve veri ile çalışan birim test şey asla söylendi. canlı veriler üzerinde test ederseniz Sonuçta, sonuçlar tahmin edilemez ve canlı veriler üzerinde test etmek yoksa, aslında yazdığın kodu test etmezsiniz. Ne yazık ki, ben bu gün yapmak kodlama çoğu bu. :-)

Ben kaydetmek ve ayarları geri yüklemek için bir rutin yazarken Geçenlerde TDD bir çekim etmedi. Birincisi, ben depolama nesnesi oluşturmak olabileceğini doğruladı. Sonra, bu kadar dediğim için gerekli yöntem vardı. Sonra ben diyebiliriz söyledi. Sonra, ben geçebileceği o parametreler. Sonra, bunun üzerine belirli parametreler geçebileceği. Ve böyle devam eder, nihayet onu belirtilen Ayarı kaydetmek olacağını doğrulayarak kadar, bana birkaç farklı sözdizimleri için, bunu değiştirmek ve sonra geri verir.

I-rutin-şimdi-Dammit gerekli çünkü, sonuna kadar alamadım, ama iyi bir egzersiz oldu.

Cevap 22/08/2008 saat 19:10
kaynak kullanıcı

oy
0

Genel olarak Birim-test ve TDD Yazdığınız yazılım hakkında kısa geribildirim döngüleri var sağlar. Bunun yerine uygulanması en sonunda büyük bir test aşaması olan, sen aşamalı yazdığınız her şeyi test edin. Eğer çok hata olabilir nerede hemen görmek gibi bu çok kod kalitesini artırır.

Cevap 03/05/2017 saat 09:33
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more