Bir çok "Testy" değil TDD nasıl kullanılır

5 Cevap php

Ben OOP ... iyi, fobidden olmayan bir şirkette çalışıyorsanız, ama en azından "çok karmaşık" olarak üzerine kaşlarını çattı. Benim arkadaşları 100 + hatları fonksiyonları çok yazmak ve onlar hiç bir fonksiyonları kullanmak eğer copy-paste olduğu için genellikle onlar değil, bir "funcs.inc.php" veya "something.inc.php" genellikle hepsi Daha hızlı.

Ben en azından yazıyorum kodu için TDD kullanmaya başlamak isterdim ama kendi kodu ile arayüz gibi ben nasıl başlayacağınızı göremiyorum.

Aktif gelişiyor ve ben çatışmaları provoke etmek istemiyorum ben kendi kodunu değiştirmek istemiyorum gibi eski kod değil.

Hangi yaklaşım şirket değiştirme haricinde, önerirsiniz?

5 Cevap

Ben gerçek TDD bir çıkış, hem o pozisyonda oldum. Ne normalde diğer insanların arabirimler için yazma testleri, mümkünse olduğunu. Insanların yaptığı pek çok ortak şeylerden biri olsaydı benim kodu çalıştırmadan önce ben o zaman biliyor:

  1. Yeniden adlandırma tarafından API kırdı veya tamamen şeyle uzakta yapıyor
  2. Fark alamadım ince türü değişiklikleri ile bir API kırdı
  3. Test olmadan toksik revizyon itti
  4. Yaylı bellek sızıntıları (benim test paketi Valgrind farkındadır)
  5. Daha önce bloke asla Blok

Başarısız olanlar Herhangi genellikle söyleyerek bana neden olacaktır "Hey, sen (modül) kontrol edebilirsiniz, ben bu son revizyon kırdı düşünüyorum"

Bu çirkin yalnızca bir zaman var. Başkası kendi kodunu yazmaya testleri olduğunu çok öfkelendim ve onların iş için dışarı olduğunu vurguladı. Ben kişi benim işi kolaylaştırmak için sadece dışarı olduğunu anlamak gelemedi.

Sağ çıkmak ve kesinlikle (yani patron performansı hakkında soruyor) mecbur kalmadıkça, "Ben kendi başıma çalışmak yerine kodunuzu hata ayıklama daha fazla zaman harcama Bak," demek için iyi bir fikir asla. Eğer sadece insanların testleri gönderirseniz çoğu zaman, onları memnun olduk. Zaten fikri ile direnişle karşılaşmadan ediyorsanız, sadece kimseye hakaret ya da küçümseyici görünmüyor deneyin.

Mock fonksiyonları / taslakları Tamam, ama bir bütün hala gerçek testler çalışılmazsa kırmak için muhtemeldir gibi ne kalır programıdır. O olur, en azından, hızlı eşyalarını ekarte edebilir ve (muhtemelen) sağ probleme işaret etmektedir.

Lütfen tüm modüller için TDD kullanmak ve bir şey için kendi modülleri kullandığınızda testleri yazmak. Sonunda, herkes çok daha hızlı herkesten daha kaliteli kod üretmek olduğunu fark edecek ve onlar neden olarak merak olacaktır. Bu onları eğitmek için mükemmel bir fırsat olacaktır.

Onlar sormak asla, iyi, en azından biraz daha kolay hayatınızı yaptı.

Ben yazmak size ne olursa olsun sonraki şey ile başlayan ve bazı testler ilk ve o şey için kod yazmak halletmek için çalışıyor ile öneririm. Bu bir donanım ya da yeni bir özellik uygulama, bir hata tespit edilebilir, ancak fikir değişiklikten önce yapılan testleri almak için bir yol bulmaya çalışmaktır.

Alternatif olarak, ortak çalışanlar bazı kod almak ve bunun etrafında bazı testler sarın ve refactor çalışıyorum, ama ben bunun üzerinde duracağım kadar iyi olduğundan emin değilim olabilir.

Muhtemelen kendi kodunu izolasyonu kodunuzu test etmek istiyorum. Bu sizin kodunuzu tasarımı nasıl değişecek - ama yine de TDD yapmak istiyorum nedeni muhtemelen.

Eğer kendinizi izole etmek istediğiniz kütüphaneleri için Mock fonksiyonları oluşturun.

Önce kendi kodunu birim testleri yazabilir miyim? Diğer insanlar tarafından rahatsız olmayın; kodunuzu tam Tdded ve birim test emin olun.

Diğer kütüphaneler ile etkileşimi taklit, böyle mocks ve taslakları gibi denenmiş ve gerçek teknikleri deneyebilirsiniz.