Поддельные переменные $ _SERVER в phpUnit - PullRequest
0 голосов
/ 13 ноября 2018

Я все еще новичок в phpUnit и не могу заставить мой (очень простой) тест работать.

<?php

use PHPUnit\Framework\TestCase;

class userTest extends TestCase {
    public function testTrue() {
        $this->assertTrue(true);

        //  This line wont work without autloader.php
        $user = new User();
    }
}

Проблема в том, что мне нужно загрузить все мои классы из autoloader.php:

<?xml version="1.0" encoding="UTF-8"?>
    <phpunit bootstrap="inc/autoload.php"></phpunit>

Но в этих классах у меня много переменных $ SERVER, например

$_SERVER['REMOTE_ADDR']
$_SERVER['HTTPS']
$_SERVER['SERVER_NAME']
$_SERVER['DOCUMENT_ROOT']
$_SERVER['REQUEST_URI']

Это ошибка, которую я получаю:

Notice: Undefined index: REMOTE_ADDR in /Applications/MAMP/htdocs/sakkadentrainer/classes/App.php on line 674

Как я могу заставить эти переменные работать?Я бы предпочел «подделать» их как env.variables из файла phpunit.xml, но я не знаю, возможно ли это.

Спасибо за помощь!

Мои настройки: php 7.1.2, phpUnit 6.1.1, macOs Mojave, MAMP

РЕШЕНИЕ : https://phpunit.de/manual/6.5/en/appendixes.configuration.html#appendixes.configuration.php-ini-constants-variables

1 Ответ

0 голосов
/ 13 ноября 2018

Обращаясь к документу, вы можете Задать настройки PHP INI, константы и глобальные переменные , например:

<php>
  <server name="REMOTE_ADDR" value="127.0.0.1"/>
</php>

Надеюсь, что эта помощь

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