I am studying and studying PHPUnit applications with PHP 5.2.9 and am facing the problem of global tasks. I set $ backupGlobals to FALSE, turned on the doc '@backupGlobals disabled', and this does not seem to affect the behavior of PHPUnit supporting global variables. Is there something I'm missing? Do I need to modify a PHPUnit xml file? Create bootstrap?
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 () fails in the test $ this-> assertNotEmpty ($ this-> testClass->), indicating that $ this-> backupGlobals is set to FALSE and that global variables are still supported by PHPUnit.
EDIT: I got this working by making the following changes:
BasicAppTest.php:
protected $backupGlobals = FALSE; <- REMOVED protected $backupGlobalsBlacklist = array('testString'); <- REMOVED
config.php:
global $testString; <- ADDED $testString = 'Hello world!';
I am stunned that it was not covered anywhere!
php phpunit
Malovich
source share