PHPUnit и глобальные переменные

Я изучаю и изучаю приложения PHPUnit с PHP 5.2.9 и столкнулся с проблемой глобальных переменных. Я установил для $backupGlobals значение FALSE, включил документ «@backupGlobals disabled», и это, похоже, не влияет на поведение PHPUnit при резервном копировании глобальных переменных. Я что-то упускаю? Нужно ли мне изменять XML-файл PHPUnit? Создать бутстрап?

config.php:

$testString = 'Hello world!';

basicApp.php:

require ('D:\data\clients\security.ca\web_sites\QRASystems.com\wwwroot\__tests\BasicApp\config.php');

class BasicApp {

public $test;

public function __construct() {
    global $testString;
    $this->test = $testString;
}

public function getTest() {
    return $this->test;
}

public function setTest($test){
    $this->test = $test;
}

BasicAppTest.php:

require ('D:\data\clients\security.ca\web_sites\QRASystems.com\wwwroot\__tests\BasicApp\BasicApp.php');

class BasicAppTest extends PHPUnit_Framework_TestCase{
    protected $testClass;
    protected $backupGlobals = FALSE;
    protected $backupGlobalsBlacklist = array('testString');

    public function SetUp(){
        $this->testClass = new BasicApp;
        $this->testClass->bootstrap();
    }

    public function testGlobal(){
        echo $this->testClass->getTest();
        $this->assertNotNull($this->backupGlobals);
        $this->assertFalse($this->backupGlobals);
        $this->assertNotEmpty($this->testClass->test);
    }

    public function testMethods(){
        $this->testClass->setTest('Goodbye World!');
        echo $this->testClass->getTest();
        $this->assertNotNull($this->backupGlobals);
        $this->assertNotNull($this->testClass->test);
        if (empty($this->testClass->test)) echo 'Method set failed!';
    }
}

testGlobal() не работает на $this->assertNotEmpty($this->testClass->test), указывая на то, что $this- >backupGlobals имеет значение FALSE, и PHPUnit все еще выполняет резервное копирование глобальных переменных.

РЕДАКТИРОВАТЬ: Я заработал, внеся следующие изменения:

BasicAppTest.php:

    protected $backupGlobals = FALSE; <- REMOVED
    protected $backupGlobalsBlacklist = array('testString');  <- REMOVED

config.php:

global $testString; <- ADDED
$testString = 'Hello world!';

Я ошеломлен тем, что это нигде раньше не обсуждалось!

9
задан Malovich 13 March 2012 в 03:41
поделиться