Как проверить мои формы в Zend Framework 1.8+? - PullRequest
0 голосов
/ 18 ноября 2009

Итак, я настроил тестирование в своем приложении 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?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2011

Если вы посмотрите в свой application.ini, посмотрите на строку, в которой указано «appnamespace», по умолчанию «Application», если вы используете Zend_Tool для создания своего скелета Zend Framework.

Чтобы предотвратить возникновение этой ошибки, либо измените этот параметр на «Default», либо переименуйте все классы Default_ * в Application_ * (в данном конкретном случае это означает, что вы переименуете «Default_Form_AccountProfile» в «Application_Form_AccountProfile»).

0 голосов
/ 18 ноября 2009

Самое простое решение вашей проблемы - это 'require_once' php-файл, где ваша форма находится в начале этого файла (или перед вызовом нового Default_Form ...).

Кстати, есть ли конкретная причина, почему вы тестируете поведение Zend_Form по умолчанию? Тесты для Zend_Form уже написаны, и вы можете получить их, если загрузите полную версию ZF. Если форма, которую вы используете, имеет свои собственные, определенные методы или перезаписывает некоторые из методов Zend_Forms, то имеет смысл протестировать их.

...