Frage

Also habe ich eingerichtet haben Testen in meinem ZF 1.9.5 Anwendung dank dieses Tutorial , ich bin in der Lage mein Controller zu testen, jetzt möchte ich einen Test für ein Formular erstellen. Aber ich habe das Problem, dass PHPUnit kann meine Form finden.

Fatal error: Class 'Default_Form_AccountProfile' not found

Ich erweitere PHPUnit_Framework_TestCase statt Zend_Test_PHPUnit_ControllerTestCase da es kein Controller ist. Ist das das Richtige zu tun? Hier ist mein Test:

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

Was mache ich falsch? Was ist der richtige Weg, ein Formular in Zend Framework zu testen?

wäre
War es hilfreich?

Lösung

Die einfachste Lösung für Ihr Problem ist es, ‚require_once‘ die PHP-Datei, in der das Formular am Anfang dieser Datei befindet (oder vor dem neuen Default_Form Aufruf ...).

BTW, gibt es einen bestimmten Grund, warum testen Sie das Standardverhalten des Zend_Form? Tests für Zend_Form sind bereits geschrieben und Sie können sie erhalten, wenn Sie die Vollversion von ZF herunterladen. Wenn das Formular Sie verwenden hat seine eigene, spezifische Methoden sind, oder einige der Zend_Forms Methoden zu überschreiben, als es sinnvoll, diejenigen zu testen macht.

Andere Tipps

Wenn Sie in Ihrem application.ini aussehen, sehen Sie die Zeile unter Angabe „appnamespace“, dass standardmäßig auf „Application“, wenn Sie Zend_Tool verwenden Zend Framework Skelett zu erstellen.

Um diesen Fehler zu vermeiden auftreten, ändern Sie entweder diese Einstellung auf „Default“ oder Sie alle DEFAULT_ * Klassen Application_ * umbenennen (in diesem speziellen Fall es bedeuten würde, Sie „Default_Form_AccountProfile“ in „Application_Form_AccountProfile“ umbenennen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top