PHPUnit Globals数据库连接

时间:2019-02-15 21:04:16

标签: php phpunit global-variables

我正在重构一个旧的PHP应用程序,实现了PHPUnit测试和Composer。

我显然遇到了全局变量的问题,现在我担心自己的应用程序可能做错了。

我有一个globals.inc.php,其中包含许多用define("SOME_VARIABLE","some value");定义的常量

在同一文件中,我使用一些常量定义了数据库连接;

$mysqlConn = new mysqli(MYSQL_HOSTNAME, MYSQL_USERNAME, MYSQL_PASSWORD, MYSQLDATABASENAME, 3306);
if ($mysqlConn->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqlConn->connect_errno . ") " . $mysqlConn->connect_error;
}
$mysqlConn->query("SET NAMES 'utf8'");

在我执行应用程序时工作正常。但是,当我执行PHPunit测试时,出现一个 Uncaught错误:在实现如下的数据库连接上调用成员函数query()为空

<?
include_once "globals.inc.php";
function somefunct{
  global $mysqlConn;
  if (!$QRY = $mysqlConn->query($strSQL)) {
            error_log("Select failed[language::getLangArray()] : " . $mysqlConn->error);
        } else {
          //..more logic..
        }
}

我认为该问题与global variables are null when using PHPUnit有关,但是我看不到解决方案...

PHP版本是7

0 个答案:

没有答案