我是新的測試,我使用PHPUnit編寫測試。所有的網站都是使用MVC模式設計的。POST參數到PHPUnit測試
我想測試我的控制器上的每個方法,問題是這樣的方法通過$ _POST變量接收參數。我怎樣才能覆蓋這個變量?
在此先感謝亞歷杭
我是新的測試,我使用PHPUnit編寫測試。所有的網站都是使用MVC模式設計的。POST參數到PHPUnit測試
我想測試我的控制器上的每個方法,問題是這樣的方法通過$ _POST變量接收參數。我怎樣才能覆蓋這個變量?
在此先感謝亞歷杭
最好的辦法是抽象的請求到一個單獨的類,而不是在所有訪問超全局。這樣你可以將實際的服務器和請求環境從應用程序中分離出來。然後,您可以輕鬆模擬請求。
即使有些人會說這不是乾淨,你可以在$_POST
設定數據,callng你的方法之前:這不是隻讀;-)
首先,如果你使用的是Zend_Test,使用
$this->request->setMethod('POST')->setPost(array(insert array info here));
如果你沒有使用,試試這個:
警告:不是最好的解決辦法,但它的工作!
在你的安裝夾具將這個
protected function setUp()
{
parent::setUp();
$_POST = array();
}
然後你打電話給你測試只是做一些類似的面前:
$_POST = array(insert array data here)
此答案的第一部分非常有幫助。謝謝。 – 2011-04-10 15:19:16
即使是第二部分也幫助我進行了TYPO3和單元測試 – 2016-05-02 11:04:18
但有必要對此進行測試的要求獨立的類。如何做到這一點最好的方法? – 2014-09-13 07:02:18
@ViktorTodorov進行單元測試。如果您想針對多個SAPIs進行測試:使用集成測試 – Gordon 2014-09-13 07:45:27