2010-04-27 24 views
11

Test konusunda yeniyim, test yazmak için PHPUnit kullanıyorum. Tüm site MVC deseni kullanılarak dizayn edilmiştir.POST parametreleri PHPUnit testine

Denetleyicilerimin her bir yöntemini test etmek isterim, sorun, bu tür yöntemlerin $ _POST değişkeni olsa da parametreleri almasıdır. Bu değişkenin üzerine nasıl yazabilirim? peşin

Teşekkür Alejandra

cevap

15

iyi yaklaşım ayrı bir sınıfa soyut İsteğini olmak ve hiç superglobals erişmek olmaz. Bu şekilde, gerçek sunucuyu çözüp uygulamadan ortam isteyin. Ardından İsteği kolayca alay edebilirsiniz.

+0

Ama bu istek ayrı sınıf test etmek için bir ihtiyaç vardır:

sadece buna benzer bir şey yapmak test aramadan önce

protected function setUp() { parent::setUp(); $_POST = array(); } 

Sonra Kur fikstür koy. Bunu yapmak için en iyi yaklaşım nasıl olurdu? –

+0

@ViktorTodorov bir birim testi ile. Birden çok SAPI'ye karşı test etmek isterseniz: bir bütünleştirme testi – Gordon

9

bazıları size yöntemleri callng önce $_POST verileri ayarlayabilirsiniz, temiz değil diyecekler bile: Yalnızca ;-)

17

İlk okumak yok, sen Zend_Test kullanıyorsanız, kullanmak

Uyarı:

$this->request->setMethod('POST')->setPost(array(insert array info here)); 

senin o kullanarak değil, bu deneyin değil iyi çözüm, ancak işe yarayacaktır!

$_POST = array(insert array data here) 
+0

ile Bu yanıtın ilk kısmı ÇOK yardımcı oldu. Teşekkürler. –

+0

İkinci bölüm bile TYPO3 ve Birim testleri ile bana yardımcı oldu –