Php 有人能提供一些关于Zend框架中表单单元测试的资源吗?

Php 有人能提供一些关于Zend框架中表单单元测试的资源吗?,php,zend-framework,forms,phpunit,Php,Zend Framework,Forms,Phpunit,如何在zend框架中测试表单? 我在zend项目中有一个登录表单,login.php是: <?php class DEMO_Form_Login extends Zend_Form { public function init() { $this ->setMethod('post') ->addElementPrefixPaths(array( 'decorator' =

如何在zend框架中测试表单? 我在zend项目中有一个登录表单,login.php是:

<?php
class DEMO_Form_Login extends Zend_Form {

    public function init() {
        $this
            ->setMethod('post')
            ->addElementPrefixPaths(array(
                'decorator' => array('DEMO_Decorator' => '../application/decorators'),
            ));

        $this
        ->addElement('text', 'username', array(
            'label' => _T('USERNAME'),
            'required' => true,
            'value' => '',
            'filters'    => array('StringTrim'),
            'decorators' => array('ViewHelper')
            ))
        ->addElement('password', 'password', array(
            'label' => _T('PASSWORD'),
            'required' => true,
            'value' => '',
            'decorators' => array('ViewHelper')
            ))
        ->addElement('submit', 'submit', array(
            'label' => _T('LOG_INTO'),
            'ignore' => true,
            'decorators' => array(
                array('Submit', array('separator'=>'<br />')))  
            ));
    }

}

我想不出任何资源,但我可以给你一个例子,说明我将如何做到这一点

因此,我将创建一个FormTestCase类,如下所示:

class FormTestCase extends PHPUnit_Framework_TestCase {

    private $_form;

    public function setUp() {
        parent::setUp();
    }

}
然后,可以按如下方式对每种形式进行测试:

class DemoFormTest extends FormTestCase {

    public function setUp() {
        parent::setUp();
        $this->_form = new My_Form_Demo();
    }

    public function testCorrectData() {
        $mockInputData = array(
            'username' => 'somename',
            'password' => 'somepass',
            'submit' => 'LOG_INTO'
        );

        $this->assertTrue($this->_form->isValid($mockInputData));
    }

     public function testInCorrectData() {
        $mockInputData = array(
            'username' => 'somename',   
            // password not given
            'submit' => 'LOG_INTO'
        );

        $this->assertFalse($this->_form->isValid($mockInputData));
    }

    // some other tests
}
在上面的示例中,
My_Form\u Demo
是您表单的版本。我需要简化它,因为我没有您的自定义装饰程序,并且无法运行测试。可以看到我在本例中使用的设置(以及我的所有其他测试)


希望这对您有所帮助。

您想测试什么?您不需要
testAddElementAddsAnElement
,因为ZF单元测试中已经介绍了这一点