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

解决您的问题的最简单方法是在该文件的开头(或在调用新的 Default_Form...之前)“require_once”表单所在的 php 文件。

顺便说一句,您测试 Zend_Form 的默认行为是否有特定原因?Zend_Form 的测试已经编写好了,如果你下载完整版的 ZF 就可以得到它们。如果您使用的表单有它自己的特定方法,或者覆盖了一些 Zend_Forms 方法,那么测试这些方法是有意义的。

于 2009-11-18T20:24:20.430 回答
0

如果您查看 application.ini,如果您使用 Zend_Tool 创建 Zend Framework 框架,请查看默认为“Application”的“appnamespace”行。

为了防止发生此错误,您可以将此设置更改为“默认”,或者将所有 Default_* 类重命名为 Application_*(在这种特殊情况下,这意味着您将“Default_Form_AccountProfile”重命名为“Application_Form_AccountProfile”)。

于 2011-02-16T09:47:29.997 回答