使用PHPUnit时,全局变量为null

前端之家收集整理的这篇文章主要介绍了使用PHPUnit时,全局变量为null前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将 PHPUnit测试放入现有项目中.全局常量变量被广泛使用.在我的单元测试中,函数失败,因为全局变量为null.这是一个失败测试的例子 @H_301_1@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

任何帮助将不胜感激

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

@H_301_1@protected $backupGlobals = FALSE;

到班级宣言没有成功.

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

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

需要进行以下更改:

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

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

猜你在找的PHP相关文章