문제

그래서 ZF 1.9.5 응용 프로그램에서 테스트를 설정했습니다. 이 튜토리얼, 컨트롤러를 테스트 할 수 있습니다. 이제 양식 테스트를 만들고 싶습니다. 그러나 PHPUnit이 내 양식을 찾을 수 없다는 문제가 있습니다.

Fatal error: Class 'Default_Form_AccountProfile' not found

확장 중입니다 PHPUnit_Framework_TestCase 대신에 Zend_Test_PHPUnit_ControllerTestCase 컨트롤러가 아니기 때문에. 그게 옳은 일입니까? 내 테스트는 다음과 같습니다.

<?php

class AccountProfileTest extends PHPUnit_Framework_TestCase
{
    public function testPopulate()
    {
        $form = new Default_Form_AccountProfile();
        $user = array(
            'firstName' => 'Joe',
            'lastName' => 'Schmoe'
        );
        $form->populate($user);
        $this->assertEquals($form->getElement('firstName')->getValue(), 'Joe');
        $this->assertEquals($form->getElement('lastName')->getValue(), 'Schmoe');
    }
}

내가 뭘 잘못하고 있죠? Zend Framework에서 양식을 테스트하는 올바른 방법은 무엇입니까?

도움이 되었습니까?

해결책

문제에 대한 가장 간단한 솔루션은 양식 이이 파일의 시작 부분에있는 (또는 새 default_form을 호출하기 전에) PHP 파일을 'require_once'하는 것입니다.

BTW, Zend_form의 기본 동작을 테스트하는 이유가 있습니까? Zend_form에 대한 테스트는 이미 작성되었으며 정식 버전의 ZF를 다운로드하면 얻을 수 있습니다. 사용중인 양식에 고유 한 양식, 특정 방법이 있거나 Zend_forms 메소드 중 일부를 덮어 쓰는 경우 테스트하는 것이 의미가 있습니다.

다른 팁

Application.ini를 보면 Zend_Tool을 사용하여 Zend Framework Skeleton을 작성하는 경우 "Application"으로 표시되는 "AppNamespace"라는 줄을보십시오.

이 오류가 발생하지 않기 위해이 설정을 "기본값"으로 변경하거나 모든 Default_* 클래스 이름을 Application_*로 바꿉니다 (이 경우 "default_form_accountProfile"이름을 "application_form_accountprofile"으로 바꾸는 것을 의미합니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top