我对 phpUnit 还是个新手,我不能使我的(非常简单的)测试工作。
<?php
use PHPUnit\Framework\TestCase;
class userTest extends TestCase {
public function testTrue() {
$this->assertTrue(true);
// This line wont work without autloader.php
$user = new User();
}
}
问题是我需要从 autoloader.php 加载我所有的类:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="inc/autoload.php"></phpunit>
但是我在那些类中有很多 $SERVER 变量,比如
$_SERVER['REMOTE_ADDR']
$_SERVER['HTTPS']
$_SERVER['SERVER_NAME']
$_SERVER['DOCUMENT_ROOT']
$_SERVER['REQUEST_URI']
这是我得到的错误:
Notice: Undefined index: REMOTE_ADDR in /Applications/MAMP/htdocs/sakkadentrainer/classes/App.php on line 674
如何让这些变量起作用?我更愿意将它们“伪造”为 phpunit.xml 文件中的 env.variables,但我不知道这是否可能。
谢谢你的帮助!
我的设置: php 7.1.2、phpUnit 6.1.1、macOs Mojave、MAMP
最佳答案
引用文档,您可以Setting PHP INI settings, Constants and Global Variables ,例如:
<php>
<server name="REMOTE_ADDR" value="127.0.0.1"/>
</php>
希望对你有帮助
关于php - phpUnit 中的假 $_SERVER 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53281250/