所以我通过this tutorial在我的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中测试表单的正确方法是什么?
答案 0 :(得分:0)
对您的问题最简单的解决方案是'require_once'表单位于此文件开头的php文件(或在调用新的Default_Form之前...)。
顺便说一句,你为什么要测试Zend_Form的默认行为?已经编写了Zend_Form的测试,如果您下载完整版的ZF,则可以获取它们。如果您使用的表单具有自己的特定方法,或者正在覆盖某些Zend_Forms方法而不是测试它们。答案 1 :(得分:0)
如果您查看application.ini,请查看说明“appnamespace”的行,如果您使用Zend_Tool创建Zend Framework骨架,则默认为“Application”。
为了防止发生此错误,您可以将此设置更改为“Default”,或者将所有Default_ *类重命名为Application_ *(在这种特殊情况下,这意味着您将“Default_Form_AccountProfile”重命名为“Application_Form_AccountProfile”)。