相关疑难解决方法(0)

使用YAML文件作为PHPUnit(CIUnit)中的数据提供程序

我正在使用PHP CodeIgniter Framework编写应用程序.我正在尝试使用CI_Unit,通过扩展PHPUnit来测试应用程序.为了测试模型,我试图加载PHPUnit文档中定义的YAML数据提供程序,我收到一个错误.如果我捏造数据提供者对象,我会收到另一个错误.如果我提供一个vanilla PHP数组,它会按预期运行.

我究竟做错了什么?这样做的正确方法是什么?以下是我的结果:

如果我返回PHPUnit_Extensions_Database_DataSet_YamlDataSet下面的Yaml文件的对象,我得到:

数据集"客户端"无效.

如果我循环返回的对象PHPUnit_Extensions_Database_DataSet_YamlDataSet并返回:我收到此错误:

PHPUnit_Framework_Exception:既不能打开"models.php"也不能打开"models.php".在/Users/eric/pear/share/pear/PHPUnit/Util/Skeleton/Test.php第100行

如果我提供一个vanilla PHP数组,测试运行就好了.我用来运行测试的命令是:

phpunit模型

下面是我的YAML文件的示例.

Clients:
    1:
        client_id: 1
        client_information: "info number 1"
        client_key: 48fb10b15f3d44a09dc82d
    2:
        client_id: 2
        client_information: "info number 2"
        client_key: 48fb10b15f3d44addd
Run Code Online (Sandbox Code Playgroud)

我使用的是PHP 5.3,PHPUnit 3.6.10,DBUnit 1.1.2,CodeIgniter 2.1.0和与CI 2.1.0相关的CI_unit.

编辑:附件是我的models/Test.php文件:

/**
 * test_add_client
 * @dataProvider add_client_provider
 */
public function test_add_client($client_id,$company_id,$software_id,$client_information,$client_key)
{
    $data = array('software_id' => $software_id,
                  'client_information' => $client_information,
                  'client_key'         => $client_key);
    try {
        $id = $this->_m->add_client($company_id,$data);
        $this->assertEquals(true, is_int($id));
    } catch (Exception $e){
        $this->assertEquals(true,false);
    }
}

public …
Run Code Online (Sandbox Code Playgroud)

php phpunit yaml codeigniter

4
推荐指数
1
解决办法
4819
查看次数

标签 统计

codeigniter ×1

php ×1

phpunit ×1

yaml ×1