Я хочу проверить соединение с базой данных, и у меня есть тест:
$author=['db_host'=>'a','db_name'=>DB_NAME,'db_user'=>DB_USER,'db_pass'=>DB_PASS,'db_timeout'=>DB_TIMEOUT];
$mock_db=\Mockery::mock('DB')->makePartial();
$mock_db->shouldReceive('getAuthorDb')->andReturn($author);
$mock_ctrl= new DB;
$mock_ctrl->getAuthorDb=$mock_db;
$result=$mock_ctrl->getConnect();
$this->assertNotNull($result);
и это класс БД:
class DB
{
public $obj = null;
public $table = 'contacts';
public function __construct(){
$this->getConnect();
}
public function getAuthorDb(){
return ['db_host'=>HOST,'db_name'=>DB_NAME,'db_user'=>DB_USER,'db_pass'=>DB_PASS,'db_timeout'=>DB_TIMEOUT];
}
public function getConnect(){
try{
$author=$this->getAuthorDb();
$dsn="mysql:host=".$author['db_host']."; dbname=".$author['db_name'];
$this->obj = new \PDO($dsn, $author['db_user'], $author['db_pass'],$author['db_timeout']);
$this->obj->query("set names 'utf8' ");
}
catch(\Exception $e)
{
echo $e->getMessage(); exit;
}
}
}
но, очевидно, метод getAuthorDb не является ложным. это получить данные. Почему?!
Пожалуйста, помогите