PHPUnit xUnit türetilen ve xUnit bunu nasıl bulunuyor çünkü.
Neden xUnit bunu bu şekilde yapıyor? Seni sordum sevindim. Orijinal nedeni, Robert işaret ettiği gibi, xUnit Smalltalk'tan gelir ve Java JUnit tarafından popüler olmasıdır. Hiçbir seçeneğim vardı Hem OO-ya hiç dillerdir.
Bu diğer avantajları yok demek değildir. OO testleri kalıtsal olabilir. Eğer tüm ebeveynin testleri çalıştırmak ve sadece değiştirdik davranışları için test yöntemlerinin avuç geçersiz bir alt sınıfı test etmek istiyorsanız bu demektir. Bu test kod çoğaltmak kalmadan alt sınıflarından mükemmel kapsama alanı sağlar.
Ekleyebilir ve PHPUnit içinde assert yöntemlerini geçersiz kolay. Sadece alt sınıf PHPUnit_Framework_TestCase
, kendi assert
yöntemler yazmak ve test sınıfları yeni altsınıftan devralır. Ayrıca varsayılan yazmak setup
ve teardown
yöntemleri olabilir.
Son olarak, bu deney çerçevenin yöntemler de test ediyoruz şeyle çatışma vermeyeceğini garanti eder. Test framework sadece test içine fonksiyonları dökülüyor ve bir setup
yöntem vardı şey test etmek istedim ... iyi belada.
O dedi, acını duyuyorum. Büyük bir test framework can sıkıcı ve hantal ve kırılgan olabilir. Perl bir xUnit stili kullanmak değildir, bu kısa test fonksiyon isimleri ile bir usul stili kullanır. Test::More bir örnek için bkz. Perde arkasında bunu önerdi sadece ne, tüm fonksiyonları kullanmak bir tek bir test örneği nesne var gelmez. Bir melez usul assert fonksiyonlar Test::Class her iki dünyanın en iyi yaptığı adlandırılan OO test yöntemleri modülü ile de var.
PHP'nin sözdizimi yöntemleri çağırmak için çok çirkin olduğunu göz önünde
Sana ->
sevmiyorum sanırım. Ben onunla yaşamayı öğrenmek öneririz. OO PHP alternatif çok daha güzel olduğunu.