2010-06-24 3 views
0

저는 Zend Framework의 단위 테스트를 위해 Zend_Test를 사용합니다. 난 내가 두 가지를 제거하면 나는 액션 메소드와 같은Zend_Test : Assert 컨트롤러 실패

public function indexAction() 
{ 
    $roleDb = new Model_DbTable_Role; 
    $role = $roleDb->getAll(); 
    $this->_forward('login'); 
} 

안에 내 DBTABLE 클래스를 호출 할 때이 오류가 발생

Failed asserting last controller used <"error"> was "index" 

테스트 장치에서이 오류 출력을 가지고 적절하게 다음 부트 스트랩 및 테스트 환경을 구성했습니다 라인 역할, 단위 테스트 성공입니다. 그것은 내 단위 테스트 코드입니다

public function testIndexActionShouldRedirectToLoginAction() 
{ 
    $this->dispatch('/index'); 
    $this->assertController('index'); 
    $this->assertAction('login'); 
} 

그 라인의 문제점은 무엇입니까?

대신 실제 오류를 어떻게 알 수 있습니까? 마지막 컨트롤러를 사용하지 못했습니다. < "오류">? 감사합니다.

+0

시험 내에서 예외를 잡으려고 시도합니다. – opHASnoNAME

+0

저는 단위 테스트에서 아직 초보자이며 배우기를 열망합니다. 나는 단위 테스트에서 예외를 사용하는 방법을 찾으려고 노력할 것이다. 고맙습니다. –

+0

@ bhoo-day, getAll() 또는 fetchAll()? – allnightgrocery

답변

0

마지막으로 해결되었습니다.

PDO로 인해 pgsql이 PHP 단위로 감지되지 않았습니다. 참고로, XAMPP에는 php.ini의 두 파일이 있습니다.

먼저 아파치/bin 안에 있고 두 번째 것은 안에 php 폴더입니다. XAMPP는 항상 첫 번째 php.ini를 아파치 서버에 사용하지만 PHP 단위는 두 번째를 사용합니다. 나는 첫 번째 php.ini를 구성하여 pgsql을 사용했지만 두 번째 것은 잊어 버렸다. 그것은 내 응용 프로그램이 여전히 실행되지만 php unit이 실행되지 않는 이유입니다.

그런 다음 나는 두 번째의 php.ini

extension=php_pdo_mssql.dll 
extension=php_pdo_mysql.dll 
extension=php_pdo_pgsql.dll <= add it 
;extension=php_pdo_oci.dll 
;extension=php_pdo_oci8.dll 
;extension=php_pdo_odbc.dll 
extension=php_pdo_sqlite.dll 
;extension=php_perl.dll 
extension=php_pgsql.dll <= remove ';' 

마지막에 pgSQL에 대한 확장을 가능하게이 문제에 대한 의견이나 제안에 감사드립니다. 신의 축복. :)