您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
phpunit标注-backupGlobals-禁用
发布时间:2021-10-06 17:15:33编辑:雪饮阅读()
上篇中对backupGlobals标注的使用了解了,那么其实该标注还可以更细致的运用到类的具体某个方法上,那么这里以禁用为例。以上篇中的源代码为基境,则假如第一个测试方法备份了(若全局启用,则某个测试方法没有标注,则默认也继承全局启用的状态),那么第二个方法此时单独设置为禁用备份,则第二个测试方法此时也有修改数据,则此时若有第三个测试方法则读取到的全局和超全局变量都是第二个测试方法修改后的数据,并不会因为类级别上面有开启backupGlobals。
MyTest.php:
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
$GLOBALS['z']="z";
$_SERVER["a"]="a";
/**
* @backupGlobals enabled
*/
final class MyTest extends TestCase
{
public function testOne(): void
{
var_dump(__METHOD__."全局:".$GLOBALS['z']);
var_dump(__METHOD__."超全局:".$_SERVER["a"]);
$GLOBALS['z']="zz";
$_SERVER["a"]="aa";
$this->assertTrue(true);
}
/**
* @backupGlobals disabled
*/
public function testTwo(): void
{
var_dump(__METHOD__."全局:".$GLOBALS['z']);
var_dump(__METHOD__."超全局:".$_SERVER["a"]);
$GLOBALS['z']="zzz";
$_SERVER["a"]="aaa";
$this->assertTrue(true);
}
public function testThree(): void
{
var_dump(__METHOD__."全局:".$GLOBALS['z']);
var_dump(__METHOD__."超全局:".$_SERVER["a"]);
$this->assertTrue(true);
}
}
use PHPUnit\Framework\TestCase;
$GLOBALS['z']="z";
$_SERVER["a"]="a";
/**
* @backupGlobals enabled
*/
final class MyTest extends TestCase
{
public function testOne(): void
{
var_dump(__METHOD__."全局:".$GLOBALS['z']);
var_dump(__METHOD__."超全局:".$_SERVER["a"]);
$GLOBALS['z']="zz";
$_SERVER["a"]="aa";
$this->assertTrue(true);
}
/**
* @backupGlobals disabled
*/
public function testTwo(): void
{
var_dump(__METHOD__."全局:".$GLOBALS['z']);
var_dump(__METHOD__."超全局:".$_SERVER["a"]);
$GLOBALS['z']="zzz";
$_SERVER["a"]="aaa";
$this->assertTrue(true);
}
public function testThree(): void
{
var_dump(__METHOD__."全局:".$GLOBALS['z']);
var_dump(__METHOD__."超全局:".$_SERVER["a"]);
$this->assertTrue(true);
}
}
运行结果:
C:\Users\Administrator>D:\phpstudy_pro\Extensions\php\php7.4.3nts\php.exe C:\Users\Administrator\PhpstormProjects\untitled\vendor\phpunit\phpunit\phpunit -c C:\Users\Administrator\PhpstormProjects\untitled\organizing\phpunit.xml C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\MyTest.php
PHPUnit 9.5.8 by Sebastian Bergmann and contributors.
.string(23) "MyTest::testOne全局:z"
string(26) "MyTest::testOne超全局:a"
.string(23) "MyTest::testTwo全局:z"
string(26) "MyTest::testTwo超全局:a"
. 3 / 3 (100%)string(27) "MyTest::testThree全局:zzz"
string(30) "MyTest::testThree超全局:aaa"
Time: 00:00.014, Memory: 6.00 MB
OK (3 tests, 3 assertions)
关键字词:phpunit,backupGlobals