Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 单元测试在这里适用吗?_Php_Unit Testing_Phpunit_Php 5.4 - Fatal编程技术网

Php 单元测试在这里适用吗?

Php 单元测试在这里适用吗?,php,unit-testing,phpunit,php-5.4,Php,Unit Testing,Phpunit,Php 5.4,上面的示例代码是用php编写的,并在表COVER\u PHOTO中添加了简单的记录 记录:“picId”对应于由“loggedInId”标识的loggedin用户 我想知道我应该在这个函数的单元测试中写些什么。 或者对于这样的函数,我们不应该编写单元测试 请建议?首先,如果您的/正在使用任何基础设施方面的问题-在您的情况下是数据库-这往往是一个问题 单元测试是在完全隔离的情况下进行的,所有可能的依赖项都被模拟/剔除 我在代码中看到的第一个问题是new()。这样,您就无法真正轻松地测试代码 我建议

上面的示例代码是用php编写的,并在表COVER\u PHOTO中添加了简单的记录 记录:“picId”对应于由“loggedInId”标识的loggedin用户

我想知道我应该在这个函数的单元测试中写些什么。 或者对于这样的函数,我们不应该编写单元测试

请建议?

首先,如果您的/正在使用任何基础设施方面的问题-在您的情况下是数据库-这往往是一个问题

单元测试是在完全隔离的情况下进行的,所有可能的依赖项都被模拟/剔除

我在代码中看到的第一个问题是
new()。这样,您就无法真正轻松地测试代码

我建议您最好在类的后面有一个接口,它可以接收该接口的具体实现。完成后,您可以在测试中输出数据库部分。然而,通过查看您在问题中共享的代码,我并不确定您将在这里测试什么行为

始终确保您想要测试什么,在这种情况下,比如持久性规范或映射配置(当然,在您使用某种类型的an的情况下)。仅仅检查持久性操作的返回值(即成功或失败标志)并不会增加多少业务价值来进行测试

 public function addPic($loggedInId,$PicId){

        $chatCoverPhotoObj = new COVER_PHOTO();
        $out = $chatCoverPhotoObj->add($loggedInId,$PicId);

        if($out)
            return true;
        return false;
    }