Zend framework 如何在Zend中使用PHPUnit测试函数?
我有一个简单的问题。也许我错过了什么。在Zend框架中是否有可能测试正常功能,而不是操作 例如,我想运行此函数的测试:Zend framework 如何在Zend中使用PHPUnit测试函数?,zend-framework,frameworks,phpunit,Zend Framework,Frameworks,Phpunit,我有一个简单的问题。也许我错过了什么。在Zend框架中是否有可能测试正常功能,而不是操作 例如,我想运行此函数的测试: public function isMature($age){ if($age>=18) true; else false; } 它位于IndexController中。我试过了 $this->indexController = new IndexController(); $this->assertFalse($this->i
public function isMature($age){
if($age>=18) true;
else false;
}
它位于IndexController中。我试过了
$this->indexController = new IndexController();
$this->assertFalse($this->indexController->isMature(5));
但PHPUnit说我必须将Zend_Controller_Request_Abstract的实例传递给u construct()。这是实现这一目标的正确途径吗?如何以良好的方式准备此测试
谢谢。在一个控制器中测试这些功能并不容易,因为它不是一个动作。我会将这种“业务逻辑”转移到一个服务类或模型或任何东西上,并对此进行测试
class My_Age_Service()
{
public function isMature($age){
if($age>=18) true;
else false;
}
}
要对控制器动作进行单元测试,请查看“Zend_Test_PHPUnit_ControllerTestCase”
您根本不需要使用控制器来测试您的功能。您的代码与Zend Framework无关,因此您不需要关心控制器
class MatureTest extends PHPUnit_Framework_TestCase {
/**
* @dataProvider dataIsMature
*/
public function TestIsMature($age, $expected) {
$this->assertSame($expected, isMature($age));
}
public function dataIsMature() {
return array(
'mature' => array(18, true),
'not mature' => array(17, false),
'really mature' => array(99, true)
);
}
}
只需确保您在测试类中包含了包含函数的文件
尽管您确实应该创建某种模型/服务类来包装此功能,而不是创建函数