0

このチュートリアルのおかげで、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 でフォームをテストする正しい方法は何でしょうか?

4

2 に答える 2

0

application.iniを見ると、Zend_Toolを使用してZend Frameworkスケルトンを作成している場合は、デフォルトで「Application」になっている「appnamespace」という行を確認してください。

このエラーの発生を防ぐには、この設定を「デフォルト」に変更するか、すべてのDefault_*クラスの名前をApplication_*に変更します(この特定の場合は、「Default_Form_AccountProfile」の名前を「Application_Form_AccountProfile」に変更します)。

于 2011-02-16T09:47:29.997 に答える
0

問題の最も簡単な解決策は、このファイルの先頭 (または新しい Default_Form を呼び出す前) にフォームが配置されている php ファイルを「require_once」することです。

ところで、Zend_Form のデフォルトの動作をテストする特定の理由はありますか? Zend_Form のテストは既に作成されており、ZF のフル バージョンをダウンロードすると入手できます。使用しているフォームに独自の特定のメソッドがある場合、または Zend_Forms メソッドの一部を上書きしている場合は、それらをテストするのは理にかなっています。

于 2009-11-18T20:24:20.430 に答える