我将
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工作.
原文链接:https://www.f2er.com/php/137678.html编辑:您需要声明$secret_key全局并在使用PHPUnit时在全局空间中为其分配值. PHP默认将全局初始化变量放入全局命名空间,但PHPUnit在备份全局变量时更改此默认值!
需要进行以下更改:
global $secret_key; // Declaring variable global in global namespace $secret_key = "a secret Key"; // Assigning value to global variable
您的代码现在应该可以使用