2014-04-01 4 views
2

CakePHP 1.3에서 POST 요청이 필요한 컨트롤러를 테스트하려고하는데 testAction은 항상 GET 요청을 생성합니다. 나는 순전히 사용하여 요청 방법을보고 간단한 예제 액션에 내려 삶은했습니다CakePHP - testAction은 항상 GET 요청을 만듭니다.

$this->RequestHandler->isPost() 

또는

$this->RequestHandler->isGet() 

결과입니다 항상 내가 'method' => 'post'를 설정 여부, GET 또는 데이터를 전송 정렬. 내가 해봤 testAction의

양식 :

$this->testAction('/testing/requesttype', array('method' => 'post')); 
$this->testAction('/testing/requesttype', array('data' => array('Post' => array('title' => 'test')), 'method' => 'post')); 
$this->testAction('/testing/requesttype', array('data' => array('Post' => array('title' => 'test')))); 
$this->testAction('/testing/requesttype', array('form' => array('test' => 'test'), 'data' => array('Post' => array('title' => 'test')), 'method' => 'post')); 

위의 모든 GET 요청을 생성합니다. 이것이 CakePHP 1.3에서 할 수 없다면, 'method => 'post'의 요점은 무엇입니까?

+2

이 가능합니까? 2.4? 그것은 그 문제를 해결할 것입니다. 거기 확실히 작동합니다. 1.3은 당신에게 믿을만한 답을주기에는 너무 오래되었습니다. – mark

+1

우리가 좋아하는만큼 많이 들여다 보았습니다. 우리가 지금 당장 받아 들일만한 일이 너무 많습니다. – robjingram

+0

이것을 사용하지 않습니까? 리디렉션을 사용한 작업 테스트? –

답변

1

내가이 방법을,이 더러운하지만 나를 위해 작동 : 당신이 괜찮은 버전으로 업그레이드하는

$_SERVER['REQUEST_METHOD'] = 'POST'; 
    $result = $this->testAction($url, 
     array(
      'form' => $data 
      ) 
     );