2012-04-12 72 views
0

與testAction傳遞參數我想測試一下這個標題的功能:如何CakePHP2.0

public function includeNumComments($posts){ 

其中$帖子是數據的陣列。

我不知道如何測試傳遞給它的數組的方法。

我已經試過這樣的事情,但它不工作:

$result = $this->testAction("/comments/includeNumComments/", array('data' => $posts)); 

$result = $this->testAction("/comments/includeNumComments/", array($posts)); 

感謝

回答

1

這不是真正使用testAction然後,因爲你無法通過HTTP傳遞一個數組。無法通過網站上的表單或鏈接執行此操作。

您可以測試它作爲一個正常的功能:

$result = $this->CommentsController->includeNumComments($posts); 
+0

好的謝謝。然後......我無法將返回的數據作爲「變量」,「內容」或「視圖」? – Alvaro 2012-04-12 16:15:02

+0

我的觀點是,該行爲不會像常規控制器操作那樣起作用,因爲您無法傳遞數組。如果您希望它作爲控制器操作工作,則需要重構它以不接受數組。如果你想在現實生活中嘗試一下,那麼你無法傳遞一個數組,所以它無論如何都會失敗。 – jeremyharris 2012-04-12 16:19:16

+0

所以...任何控制器上的任何函數都不能將數組作爲參數? – Alvaro 2012-04-12 17:06:47

2

這裏是正確的情況下,它爲我工作。希望它有幫助:

public function testAddUser() { 
    $data = array(
     'User' => array(
      'id' => 12, 
      'username' => 'testname1', 
      'password' => '[email protected]!', 
      'email' => '[email protected]' 
     ) 
    ); 
    $result = $this->testAction(
     '/users/add', 
     array('data' => $data, 'method' => 'post') 
    ); 
    debug($result); 

}