使用PHPUnit时,全局变量为null

前端之家收集整理的这篇文章主要介绍了使用PHPUnit时,全局变量为null前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将 PHPUnit测试放入现有项目中.全局常量变量被广泛使用.在我的单元测试中,函数失败,因为全局变量为null.这是一个失败测试的例子
static $secret_key = "a secret Key";
class secret_key_Test extends PHPUnit_Framework_TestCase
{
    function test_secret_key()
    {
        global $secret_key; 
        $this->assertEquals($secret_key,"a secret Key");   
    }
}

>> Failed asserting that 'a secret Key' matches expected null

任何帮助将不胜感激

更新:
我试过删除静态和添加

protected $backupGlobals = FALSE;

到班级宣言没有成功.

这个答案不起作用.我问了一个几乎完全相同的问题 here并且得到了一个更有意义的答案;你不能覆盖PHPUnit将看到的测试类中的受保护属性$backupGlobals.如果你在命令行上运行,似乎你可以通过创建一个xml配置文件并在那里将backupGlobals设置为false来使Globals工作.

编辑:您需要声明$secret_key全局并在使用PHPUnit时在全局空间中为其分配值. PHP默认将全局初始化变量放入全局命名空间,但PHPUnit在备份全局变量时更改此默认值!

需要进行以下更改:

global $secret_key; // Declaring variable global in global namespace
$secret_key = "a secret Key"; // Assigning value to global variable

您的代码现在应该可以使用

原文链接:https://www.f2er.com/php/137678.html

猜你在找的PHP相关文章