Eklenti geliştirme için birim testi


17

Eklentilerimden biri için birim testi uygulamam gerekiyor. Kısa süre önce sınıflara göre yeniden tasarladım, bu yüzden birim testlerinin uygulanması daha kolay olmalı.

Eklentimi birim test etmek için bazı etkili stratejiler nelerdir? Eklentide kullanılan WordPress işlevlerini kullanmanın bir yoluna ihtiyacım var, ancak çalışan bir WordPress sitesine (sadece DB AFAIK'deki verileri test et) gerek yok, değil mi?

Sitenin bağlamında sadece eklentiyi değil eklentiyi test etmeyi nasıl anlayacağımı anlayabiliyorum. Bunun için Selenium'u kullanabilirim, ancak şu anda sadece eklenti sınıflarının işlevselliğini test eden birime odaklanmak istiyorum, böylece her güncellemeyle onları kırmıyorum.

Yanıtlar:


14

Etkileşimli bir ajansa giren büyük işletme türleri inşa eden eski bir yazılım mühendisi olarak, Wordpress için geliştirirken size test hakkında birkaç fikir vermeme izin verin:

  1. Birim Testiniz, bir sınıfın gerçekleştirebileceği en küçük davranışı test etmelidir. Her sınıf Wordpress'ten bağımsız olarak test edilebilmelidir. Wordpress bağımlılığınız varsa, bu soruna geçici bir çözüm bulmak için testinizde sahte nesneler ve / veya yöntemler oluşturmayı düşünün. Sonuçta, bu, kodunuzu yazma şeklinizi değiştirecektir - ancak çok daha test edilebilir olacaktır. Her zamanki gibi ücretsiz öğle yemeği yok.

  2. Fonksiyonel test seviyesine ulaştığınızda, Wordpress bağımlılıkları ile kodunuzu test edebileceğiniz yer burasıdır. Burası, eklentinizin gerçekten olması gereken bir hizmeti gerçekleştirdiğini test edeceğiniz yerdir.

  3. Eklentinizin ne yaptığına bağlı olarak - kimlikleri kullanarak DOM'da verilerin varlığını test eden Selenyum tabanlı testleri kullanmayı düşünün. Oldukça sağlamdır ve sürümü versiyona bölme olasılığı daha düşüktür. Yine, buradaki hile testi test etmeyi yazılım geliştirme yaşam döngünüzün bir parçası olarak düşünmektir. Koddaki büyük değişiklikler, testlerinizdeki büyük değişikliklere kadar kademelendirilir. Hepsi iş yapma maliyetinin bir parçası.

Bunu gerçekleştirmek için herhangi bir araçla ilgili yardıma ihtiyacınız olursa - yeni bir soru açarsanız cevap vermekten memnuniyet duyarız. Yaptığım işte hem PHPUnit hem de selenyum uzantısını kullanıyorum.


1
Hey Ethan, böyle profesyonel bir cevap için teşekkürler. Bu topluluktan daha az bekleyemedim :) Sınıflarım için Birim Testleri yazmaya çalışacağım ve WordPress'in işlevleri etrafında çalışmak için bazı sahte nesneler oluşturacağım. Adım 2 benim için asıl zor kısım, çünkü daha sonra Selenium'u kullanmaya başlayabileceğim bir tür otomatik test için bir WordPress instansına ihtiyacım olacak. PHPUnit ile başlayacağım ve nasıl gittiğini göreceğim. Teşekkürler!
Fernando Briano

Mükemmel cevap!
rsman


-1

Son zamanlarda, nasıl yapılacağını göstermek için Google'ımdan bilgi alan bir eğitici oluşturdum:

  1. Wordpress çekirdek birim testleri yapmak kullanın
  2. Kullanımdan kaldırılan php / oturum uyarılarını gizle
  3. Testlerde eklenti seçeneklerinizi nasıl ayarlayacağınızı gösterin
  4. Birden fazla eklentiyi test etmek için aynı wp core make unit testlerini kullanın

Eğitim burada , umarım yardımcı olur

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.