Php 有人能提供一些关于Zend框架中表单单元测试的资源吗?
如何在zend框架中测试表单? 我在zend项目中有一个登录表单,login.php是: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' =
<?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单元测试中已经介绍了这一点