单元测试在这里是否适用


Is Unit Test Applicable Here?

 public function addPic($loggedInId,$PicId){
        $chatCoverPhotoObj = new COVER_PHOTO();
        $out = $chatCoverPhotoObj->add($loggedInId,$PicId);
        if($out)
            return true;
        return false;
    }

上面的示例代码是用 php 编写的,并在表格中简单添加记录COVER_PHOTO记录:"picId"对应于由"loggedInId"标识的登录用户。

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

请建议?

首先

,如果您的系统/待测类正在使用任何基础设施问题(在您的情况下是数据库(,这往往是集成测试。

单元测试是在完全隔离的情况下进行的,每个可能的依赖项都被模拟/存根。

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

我建议你最好反转这个依赖关系,在你的类的构造函数中有一个接口,它可以接收该接口的具体实现。完成此操作后,您可以在测试中模拟数据库部分。但是,通过查看您在问题中共享的代码,我并不真正相信您将在这里测试什么行为

始终确保要测试的内容,在这种情况下,例如持久性规范或映射配置(当然,如果您使用的是某种 OR/M(。仅检查持久性操作的返回值(即成功或失败标志(不会增加太多要测试的业务价值。