加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

zend-framework – PHPUnit,使用类consts来改变State

发布时间:2020-12-13 21:41:05 所属栏目:PHP教程 来源:网络整理
导读:我正在学习Zend和 PHPUnit. 这是我在下面的内容 public function changeToIllegalState(){ return array( array( Application_Model_SomeModel::FAIL ),array( Application_Model_SomeModel::SUCCESS ) );}/** * @dataProvider changeToIllegalState * @expe
我正在学习Zend和 PHPUnit.

这是我在下面的内容


public function changeToIllegalState()
{
    return array(
        array( Application_Model_SomeModel::FAIL ),array( Application_Model_SomeModel::SUCCESS )
    );
}

/**
 * @dataProvider changeToIllegalState
 * @expectedException IllegalStateChangeException
 */

public function testIllegalStateChangeGeneratesException( $state )
{
    $mapper = new Application_Model_Mapper_SomeModel();
    $model = new Application_Model_SomeModel();

    $model->changeState( $state );

    $mapper->save( $model );

}

正如您在此处所看到的,数据提供程序提供了一些表示模型中不同状态的常量.

PHPUnit说它无法在dataprovider方法中找到Model类.但是,如果我尝试在测试方法中使用常量,那么一切正常并且没有问题.我正在使用Zend自动加载器来加载我的课程,到现在为止它一直很花哨.我知道我可以直接输入常量值,但我不知道为什么我会收到这个错误.

我只能假设在调用setup方法之前调用了dataprovider方法,因为我在setup方法中执行了所有自动加载业务.

编辑:

我也试过以下但它仍然不适用于类consts.


protected $_FAIL;
protected $_model;

public function setUp()
{
    parent::setUp();
    $this->_model = new Application_Model_SomeModel();
    $this->_FAIL = Application_Model_SomeModel::FAIL;
}

现在,当我尝试在provider方法中使用$_FAIL时,我得到一个NULL值而不是我期望的’fail’字符串.这真的很奇怪.

解决方法

PHPUnit实例化将在运行任何测试之前运行的所有测试用例.

>每个测试方法一个没有数据提供者.
>每个数据提供者方法一个.
>每个数据提供程序返回一个参数数组,因此返回四个数组的数组的提供程序将获得四个测试用例实例.

假设您在bootstrap.php中设置了自动加载器,它应该加载包含这些常量的类.但是,我会尝试测试看看:

public function changeToIllegalState()
{
    require_once 'Zend/Loader/Autoloader';
    Zend_Loader_Autoloader::getInstance();

    return array(
        array( Application_Model_SomeModel::FAIL ),array( Application_Model_SomeModel::SUCCESS )
    );
}

或者是Zend Framework将模型的目录添加到测试用例的setUp()方法之一的include路径中?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读