Zend Frameworkの1.8+で私のフォームをテストするには?
-
20-09-2019 - |
質問
だから、私はZF 1.9.5アプリケーションに<のhref = "http://www.zendcasts.com/unit-testing-with-the-zend-framework-with-zend_test-のおかげでテストを設定していますそして、PHPUnitの/ 2009/06 /」のrel = 『nofollowをnoreferrer』>このチュートリアルに、私は今、私はフォームのテストを作成したい、私のコントローラをテストすることができますよ。しかし、私は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を呼び出す前に、「)するrequire_once」に自分のフォームがこのファイルの先頭に配置されたPHPファイルです。
ところで、なぜあなたはZend_Formのデフォルトの動作をテストしている具体的な理由はありますか? Zend_Formのためのテストは、既に書かれている、あなたはZFのフルバージョンをダウンロードする場合は、それらを得ることができます。使用しているフォームは、それ自身、特定のメソッドを持っている、またはそれは、それらをテストするために理にかなっているよりも、Zend_Forms方法の一部を上書きしている場合。
他のヒント
あなたのapplication.iniに見ると、「アプリケーション」へのデフォルトは、あなたのZend Frameworkのスケルトンを作成するにZend_Toolを使用している場合は、その「appnamespace」を明記の行を見てみます。
が発生し、このエラーを防止するためには、「デフォルト」か(この特定のケースでは、それはあなたが「Application_Form_AccountProfile」に「Default_Form_AccountProfileを」名前の変更を意味します)Application_ *にすべてDefault_ *クラスの名前を変更するには、この設定を変更するのいずれか。