Test PHP Geliştirme Driven

7 Cevap php

PHP bir web geliştirici çalışma duyuyorum. Ben C # masaüstü uygulamalarında Test Driven Development kullanarak bazı sınırlı deneyimi var. Bu durumda biz birim test çerçevesi için nUnit kullanılır.

Ben yeni projelerde TDD kullanmaya başlamak istiyorum ama gerçekten nereden başlayacağınızı emin değilim.

Ne önerileri Eğer PHP tabanlı bir birim test çerçevesi için var ve TDD kavramı oldukça yeni olan birisi için bazı iyi kaynaklar nelerdir?

7 Cevap

Ben phpunit ve hem de kullanılan ettik SimpleTest and I found SimpleTest kullanmak daha kolay olması.

Bildiğim kadarıyla TDD gider, ben saf anlamda onunla çok şans olmadı. Ben esas olsa benim parçası üzerinde bir zaman / disiplin sorunu olduğunu düşünüyorum.

Aslında sonra testler ekleyerek biraz faydalı olmuştur ama yapmak benim en sevdiğim şeyler ben düzeltmek zorunda özgü böcek test kullanımı yazma SimpleTest testleri olduğunu gelmiştir. Bu çok kolay şeyler aslında sabit ve sabit kalmak olduğunu doğrulamak için yapar.

Tavsiye ederim Test-Driven Development by Kent Beck (ISBN-10: 0321146530). PHP için özel olarak yazılmış, ancak kavramlar vardır ve PHP kolayca çevrilebilir olmalıdır değildi.

PHPUnit bir standart olduğunu, ama aynı zamanda bazen ezici, o yüzden çok karmaşık bulursanız, phpt başlamak için check out. İçinde testleri yazmak için çok, çok kolay. Herhangi bir programcı için bir hayır beyin.

Ve TDD soruyu cevaplamak için - Ben TDD widley PHP alanda kullanılır emin değilim. Ben hızlı uygulama geliştirme ve TDD biraz (kesinlikle IMHO) çatışma olduğunu görebilirsiniz. TDD kurup ne tam bir resim var gerektirir ve sınama geçişi yapmak için kod uygulamak o kadar ön testlerinizi yazmak ve.

Yani, örneğin ne yapmak yerine, biz bittiğinde testleri bir sürü yazmaktır. Bazen geçmek, ama değil gerçekten yararlı ama en azından size genişletebilirsiniz şey sahte testleri ile sona çünkü bu her zaman iyi bir yaklaşım değildir. İçten biz testleri devam ve temelde biz bulmak her hata için bir test yazmak. Bu daha sağlam hale nasıl.

Şahsen SimpleTest tercih ederim. Bir komut satırı test atlet ve web-tabanlı test koşucu var, ve plugin Eğer IDE kendisinden birim testleri çalıştırmak izin bile bir Eclipse var. Özellikle ayıklayıcısıyla çalışma almak çok zor bağlantı, phpunit için Zend bulundu.

Bünyemizde SimpleTest kullanmak yolu biz kendimizi yazdı continuous integration komut ile. Biz SVN bir özelliği kontrol Her zaman biz birim testleri içerir. Her saat ya da öylesine, CI komut çalıştırır ve ünite testleri tüm çalışan bir komut satırı PHP komut dosyası çağırır. Herhangi bir kesinti olursa, ben bir e-posta almak. Bu bizim sistemlerde hataları azaltmak için harika bir yoldur oldu.

Ancak, sadece kadar kolay bir cron işi veya bir SVN check-in kanca ile ya Phing otomatik testleri çalıştırmak gibi bir şey kullanabilirsiniz.

Daha fazla yardım için doğrudan benimle temas etmek istiyorsanız Aslında, bunu benim profil bilgi aracılığıyla bana ulaşabilirsiniz. Sana yardım etmek isterim.

SimpleTest büyük bir sistemdir. TDD duymadım olan, yaklaşık 5 ay önce onunla başladı ve SimpleTest öğrenmesi kolay ama yine de güçlü. Kaynaklara gelince, ben şu anda TDD By Example Kent Beck tarafından okuyorum, ve bu iyi.

Sen PHPUnit, bu Nunit gibi oldukça fazla görünüyor içine bakmak gerekir.

Bunu bakmak gerekir başka modern bir araçtır Codeception. Bu PHPUnit sonra çok daha basit ve testlerden belgeler oluşturmak için oldukça yararlıdır senaryo odaklı bir yaklaşım içeriyor.