Глобальная переменная PHPunit возвращает NULL - PullRequest
0 голосов
/ 12 ноября 2018

Я новичок в php Unit test, но я мог установить его и заставить его работать (PHP 7.1.2 / phpUnit 6.1.1 в системе Mac / MAMP). Но теперь я не могу позволить ему проверить мое приложение. Вероятно, из-за странной архитектурной иерархии классов.

В моем autoload.php я загружаю свои классы так:

/* get timing functions */
$th = new TimingHelper();

/* Get basic functions */
$basic = new basic();

/* Get App data (param: fake localhost true / false) */
$App = new App(); 

/* Start DB Connection */
$db = new db(0);

/* Get usr data  (param: fake user mode true / false, user id) */
$usr = new User();

Есть еще больше классов ...;)

Теперь внутри User Class я получаю предыдущие классы, подобные этим:

class User {
     /* get DB connection */
    private $db, $App, $tr, $th, $basic;

    public function __construct() {

        /* get DB connection */
        Global $db, $App, $tr, $th, $basic;
        $this->db = $db;
        $this->App = $App;
        $this->tr = $tr;
        $this->th = $th;
        $this->basic = $basic;

        /* Start timing */
        $this->th->start();
    }
}

Возможно, это не так, но это работает;)

Но теперь, если я хочу использовать phpUnit, я слышал, что он игнорирует глобальные объекты, поэтому

 var_dump($this->th);

НЕДЕЙСТВИТЕЛЕН.

Нет ли способа использовать phpUnit с моей системой классов? Если нет, что мне нужно изменить?

Я пытался расширить каждый класс, но потом мое приложение было СУПЕР медленным ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...