Глобальное соединение pdo недоступно в тесте PHPUnit - PullRequest
0 голосов
/ 02 апреля 2020

Я начинаю использовать PHPUnit для своих проектов, и мне нужно проверить, что некоторые данные успешно сохранены в базе данных.

Моя проблема заключается в том, что соединение PDO, которое создается в отдельном файле с имя $ connpdo не доступно. Я действительно не понимаю, почему.

Это мой код:

<?php
include_once("database_inc.php");

use PHPUnit\Framework\TestCase;

function save_twins($auto_id = 412184){
    global $connpdo;
    $query = "select quality_inspection from dqa_manifest_upload_rules where auto_id = $auto_id";
    $stmt = $connpdo->query($query);
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    $quality = $row["quality_inspection"];
    return $quality;
}

class Test_save_twins extends TestCase
{
    public function testExamples()
    {
        $this->assertEquals('A', save_twins(412184));
    }
}
?>

Переменная $ connpdo создается в файле database_in c. php

$connpdo = new PDO("mysql:host=$cfgiDbHost;dbname=$cfgiDbDatabase;charset=utf8", $cfgiDbUser, $cfgiDbPasswd);

Я также пытался без глобальных, но я не знаю, что происходит. Может быть, использование пространства имен?:

use PHPUnit\Framework\TestCase;

Я подумал, что, возможно, pdo не был включен, но я проверил с помощью php -m, и я вижу эти модули:

PDO
pdo_mysql
pdo_sqlite
pdo_sqlsrv
Phar
...