Birim Testi HTTP eylemleri

5 Cevap php

Ben Yet Another PHP Framework yazıyorum, şimdi ben malzeme iyi bir anlaşma kodlu ettik, ben (evet, ben, kötü formunu bilmek) ünite testleri düşünmeye başlıyorum.

Bazı eylemler tarayıcı yönlendirmek, bu tür çerezleri oluşturmak gibi, HTTP davranışını değiştirmek için çerçeve yapmak. Bir başka önemli özelliği, ziyaret URI çerçeve davranması gerektiğini şekilde etkileyebilir olmasıdır.

Özetle, ben etkileyecek şeyler test etmek gerekiyor, ya da çevre tarafından etkilenen ve dönüş değerleri değil, sadece işlevleri / yöntemleri. Bunu nasıl kolay yapabilirim?

5 Cevap

SimpleTest en Web Tester size yardımcı olabilir.

Özetle, ben etkileyecek şeyler test etmek gerekiyor, ya da çevre tarafından etkilenen ve dönüş değerleri değil, sadece işlevleri / yöntemleri. Bunu nasıl kolay yapabilirim?

Ortamı kolayca simüle edilebilir ve devletin küçük bir miktar ile tamamen temsil edilebilir, o zaman mock testing içine bakmak gerekir. Mock testleri Eğer sadece şeyler doğru sırayla çağrıldı emin paçayı eğer, gerçek etki alanı nesneleri kullanmak zorunda karışıklık olmadan testleri yazmak yardımcı olur. İşte ilkeleri a good overview bulunuyor.

Bu durumda değilse, o zaman önemli ölçüde daha pahalı olan, bir integration test bahsediyoruz. Entegrasyon testleri sistem akıcı oluşturulur ve genellikle uygulamanızın bir canlı, tam yığın kopya ile çalıştırırsanız, görmenize yardımcı. İşte some more reading entegrasyon testleri.

Eğer ünite testleri sunucuya HTTP isteklerini yapmak ve daha sonra kurabiye ve başlıkları yanıt doğru ayarlanmış olduğunu kontrol etmelisiniz.

PHP, ben Zend_Http_Client kullanabilirsiniz. Belgeler bulunabilir here, paket Zend_Http içinde.

Eğer (çevre bir entegrasyon test dokunur tanım şey ile) entegrasyon testleri değil, birim testleri yazarken sanki Yani bu sesler.

Bu tarayıcı aracılığıyla yığını aracılığıyla test etmek daha kolay olurdu? Böylece bir tarayıcı otomasyon çerçevesinde bir göz varsa, belki bir şey gibi http://wtr.rubyforge.org/

(Evet, ben, kötü formu biliyorum).

Evet. Eğer testler ile başlamış olsaydı, harici bağımlılıkları dışarı alay edilebildiği gibi, bir şekilde çerçeve yazılı olurdu. Şimdi ne yapabilirim, küresel bir proxy nesnesi için bir çağrı ile, küresel durumunu işlemek işlevleri tüm aramaları değiştirmektir. Daha sonra testler sırasında bunu taklit edebilirsiniz. Küresel bir devletin belirli bir zahmetli değişim, exit / die için çağırır. Sen mock bir istisna ile değiştirmek deneyebilirsiniz.