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"。
标识的登录用户我想知道我应该在这个函数的单元测试中写什么。 或者对于这样的功能,我们不应该编写单元测试。
请建议?
答案 0 :(得分:0)
如果您的System- / Class Under Test正在使用任何基础设施问题 - 在您的情况下是数据库 - 通常是integration test。
单元测试完全隔离,每个可能的依赖项都被模拟/存根。
我在您的代码中看到的第一个问题是您new()
了解您的函数的依赖关系。通过这种方式,您无法轻松测试代码。
我建议你更好invert this dependency并在你的类的constructor中有一个接口,它可以接收该接口的具体实现。完成此操作后,您可以在测试中mock出数据库部分。但是,通过查看您在问题中分享的代码,我并不确定您将在此处测试行为。
始终确保要测试的内容,在这种情况下,如持久性规范或映射配置(当然,如果您使用某种OR/M)。只检查持久性操作的返回值 - 这是成功或失败标志 - 不会增加很多商业价值来进行测试。