我将
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
您的代码现在应该可以使用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。