如何在以下功能的PHP Unit中存根数据库查询结果?
public function getName($id){
$db = new mysqli("localhost", "username", "password", "dbname");
$result = $db->query("SELECT firstname FROM employees WHERE id=" . $id ."limit 1");
$greeting = 'Hello, my name is' . $result[0];
return $greeting;
}
答案 0 :(得分:0)
请考虑使用Dependency injection
作为良好答案。但是您甚至可以在测试中嘲笑Mysqli
。在您的php测试类中插入下面的代码,在运行时它将通过下面的定义替换mysqli
和函数query
。
namespace Name\Space\Of\Your\Php\File\To\Test {
class mysqli {
function query(): string
{
return '';
}
}
}