SimpleTest ile Birim Testi CodeIgniter - Çok az sayıda testler

2 Cevap php

Geliştirme ekibimiz, biz birim test denemeye karar verdi. Biz SimpleTest kullanımı. Ancak, zor bir yol oldu. Bir hafta sonra, ben sadece belli bir yardımcı dosyayı testleri 1 ünite testi oluşturduk. İşte bu. Gerisi (kontrolörleri, modeller, düşünceler, kütüphaneler) Henüz ünite testleri yok. Ve ben onlardan bir çoğunluğu sınamak değil planlıyoruz. Görüntüleme, örneğin, test etmek çok önemsiz olduğunu, bu yüzden bu test üzerinde geçmek. Sonraki, kontrolörler. Sadece modelleri ve görünümleri arasında bilgi geçişini yapar ki ben, karmaşık şeyler yapmak değil benim denetleyicileri planlıyoruz. Ben kütüphanelere ya da yardımcıları için bu daha karmaşık malzeme taşımak istiyorum.

Şimdi benim sorular için:

1) Am I doing it wrong? So far, there's nothing more that I can see that can be erroneous so it would need a unit test. Most of the stuff (right now) are just CRUD.
2) Do we really need to unit test controllers? Since a controller's job is just minor processing of data passed between View and Model, I find very little initiative in unit testing it.
3) If I use WebTestCase to test for controllers, would that be still considered a Unit Test? Or is it already an integration test?
4) Suppose you got me to test my controller, how would I test it? As far as I know, CI follows the Front Controller pattern through index.php, so how would I handle (mock?) that?

2 Cevap

Eğer yanlış bir şey yapıyorsun? Öyle düşünmüyorum.

Biz gerçekten birim test denetleyicileri gerek var mı? Bilmiyorum. Belki. Olsa da, bir sürü iş gibi görünüyor.

Ben denetleyicileri sınamak için WebTestCase kullanırsanız, hala bir Birim Test düşünülebilir? Ya da bir entegrasyon test zaten? Bazı anlamlı çıkışı tespit edilebilir eğer WebTestCase test denetleyicileri için ilginç bir yaklaşım olacaktır; Örneğin, herhangi bir hata çağrı / bir / özel / yol meydana geldiğini tespit.

Benim kumandayı test etmek için beni herhalde, onu nasıl test? Bu zor bir durum. Sen muhtemelen değerli bir şey yapmak için uygulama ortamı kısmını başlatmak gerekir.

En makaleleri / kitapları testleri before kodlama başlatmak tanımlamak için söylüyoruz. Belki bunu denedim, ama ben genellikle çok sabırsız değilim. Bu, hızlı prototipleme şekilde almak gibi görünüyor, ama belki birim testleri is hızlı prototipleme bir yolu tanımlayan.

PHP ile test etmek için ne karar bir meydan okuma olduğunu tespit ettik. Ben size savaşlar almak zorunda düşünüyorum. Bu, bir yöntem, belirli türde bir değer döndüren kritik ise o test. Bir nesneyi başlatmasını bir çok şey otomatik olarak gerçekleşmesi durumunda, bunun için de test edebilir.

Genel olarak, ben ne - Doğru ya da yanlış - sonra bazı temel testler oluşturmak ve sonra karşılaştığınız sorunlara dayalı gerektiği gibi test eklemek, her şey çalışıyor olsun. Fikir tekrar sorun var asla ve her test uygulama yaşam döngüsü boyunca aynı şekilde davranır sigorta olacaktır.

Özelliklerini gelince, ben Zend Framework kullanarak değilim, ama CodeIgniter'daki benzer olacaktır. Ben de (ama benim kendi sınıf sargı ile) SimpleTest kullanın. Ben veya olmayabilir birim test modelleri ve denetleyicileri veya görünümler için testler uygulamaya asla; çok fazla iş ve çok az yarar gibi görünüyor bulunuyor. En çerçeveler "erken başarısız" ve bu yüzden sorunlar genellikle açıktır. Ama herhangi bir ortak kitaplık kodu burada daha kolay hedefler ve hata yapmak - özellikle mantık hataları - algılamak zordur. Lütfen çerçeve özgü kod birkaç sorunlarla karşılaşır, böylece beklendiği gibi emin işlerin yapmak için testleri ayarlayın.

Hala CodeIgniter için başka bir birim test öneri açık iseniz, ben size Toast denemenizi öneririz. Ben kullanımı kolay buldu ve benim geliştirme süreci ile çok fazla etkilemez.

Ben sadece benim kütüphane, yardımcısını ve modeli test etmek için birim testi kullanın. Benim kontrolör çok kod yok, sadece süs veya intval kullanarak sanitasyon, yazı ve uri parametreyi elde kütüphane veya modeline geçmek, daha sonra görüntülemek için geçmesi sonucunu.

Bu tarayıcı her şeyi görüntülemek yana neredeyse, test hiçbiri kodu var gör. Çoğunlukla, sadece css ve js hata ayıklama gerekir.

Bu veri ile uğraşan beri modeli hemen hemen her zaman, test edilmesi gerekiyor. Birim test olmadan, ben zor özel bir kompleks hesaplama ile, bazı hata iz bulundu.

Kütüphane ve yardımcı tekrarlayan bir görevi yapmak, yani bunun içinde mantık işi doğru yapıyor emin olmak için bir birim testi gerekir.

Ben bu yardım umuyoruz.