Я новичок в 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 с моей системой классов? Если нет, что мне нужно изменить?
Я пытался расширить каждый класс, но потом мое приложение было СУПЕР медленным ...