Pregunta

Así que he creado en mi solicitud de pruebas ZF 1.9.5 gracias a este tutorial , soy capaz de poner a prueba mis controladores, ahora quiero crear una prueba para una forma. Sin embargo, estoy teniendo el problema de que PHPUnit no puede encontrar mi forma.

Fatal error: Class 'Default_Form_AccountProfile' not found

I extiendo PHPUnit_Framework_TestCase en lugar de Zend_Test_PHPUnit_ControllerTestCase ya que no es un controlador. Es que lo que hay que hacer? Aquí está mi prueba:

<?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');
    }
}

¿Qué estoy haciendo mal? ¿Cuál sería la forma correcta de probar un formulario en Zend Framework?

¿Fue útil?

Solución

La solución más sencilla a su problema es 'require_once' el archivo PHP donde se encuentra su forma en el comienzo de este archivo (o antes de llamar a la nueva Default_Form ...).

Por cierto, hay una razón específica por la cual estás probando el comportamiento por defecto de la Zend_Form? Las pruebas de Zend_Form ya están escritos y se puede conseguir si se descarga la versión completa de ZF. Si el formulario que está utilizando tiene sus propios métodos, específicos, o es sobrescribir algunos de los métodos Zend_Forms de lo que tiene sentido para probar a los.

Otros consejos

Si nos fijamos en su application.ini, mirar la línea que dice "appnamespace" que por defecto "Aplicación" Si está utilizando Zend_Tool para crear su esqueleto Zend Framework.

Con el fin de evitar que este error se produzca, o bien cambiar este ajuste a "defecto" o cambia el nombre de todos los default_ * clases a Application_ * (en este caso particular que significaría cambiar el nombre de "Default_Form_AccountProfile" en "Application_Form_AccountProfile").

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top