Ham veriyi POST alaycı

3 Cevap php

Ben bir web uygulaması için PHPUnit test durumları yazıyorum. Testler bir komut satırı ortamında çalıştırmak gibi, ben vb $_POST, $_GET, $_SERVER gibi önceden tanımlı değişkenler, bir dizi alay ediyorum. Benim test benim denetleyicisi sınıfı (php://input ile ham POST ve kırmızı olarak gönderilir) düzgün JSON girişi ayrıştırır emin olmak için vardır. Soru nasıl bir web sunucusu çalıştıran olmadan php :/ / girişinin değeri işleyebilirsiniz, nedir?

3 Cevap

Ne (PHP 5.3 üzerinde iseniz ya da bir kapak) test ederken sadece sahte bir örneği ile değiştirilmesi, daha sonra bir sınıfa okuma işlevselliği taşıma hakkında?

POST verileri (farklı bir şey sadece boru, yani sonrası verileri değiştirmek için) okumak için kaç bayt CONTENT_LENGTH ortam değişkeni söylüyorum PHP tabi PHP'nin stdin, beslenir, ne olursa olsun

Veri QUERY_STRING ortam değişkeni her ne ise GET.

this $ _SERVER gibi şeyleri doldurmak için PHP tarafından kullanılan olduğunu belirlemek için yararlı olabilir diğer çevre değişkenleri için bakın

Yeterince endişeleri ayrılmış değil söyleyebilirim; Ben onu görmek yolu, sahip olmalıdır:

  • php :/ / input ham veriyi alır ve geçer bir yöntem başka bir yöntemi veri
  • bir dize alır ve JSON olarak ayrıştırır ikinci yöntem

Bu iki yöntemden her biri tek ve sadece tek bir şey sorumludur; Bu şekilde, can unit-testi.

Sizin durumda, ikinci yöntem (aslında çalışır bir) davranışını birim test edebilirsiniz - giriş nereden geldiğini bağlı olmadan.