我正在尝试为我的 Slim PHP 应用程序中的单个函数编写一个简单的单元测试。该函数使用 mkdir() 创建一个目录,我希望测试断言该目录已成功创建。使用前端应用程序测试时,文件夹创建成功,但运行测试时,找不到目录
1) TestController::testCreate mkdir(): 没有那个文件或目录
我们使用以下方法自动加载类:
//composer.json
"autoload": {
"psr-4": {
"App\\": "app",
"tests\\": "tests/"
}
}
这是创建目录的函数:
//Controllor.php
public function create($request, $response){
mkdir("../public/folder");
}
使用该应用程序,这会按预期在以下位置创建一个目录
-app
-public/folder
这是测试功能的示例:
//TestController.php
public function testCreate(){
$controller = new Controller($this->container);
$request = $this->requestFactory();
$response = new \Slim\Http\Response();
$response = $controller>create($request, $response, []);
//Assertions below..
}
我正在使用 phpunit.xml 通过将 bootstrap="vendor/autoload.php" 插入配置文件来引导 autoload.php 文件。
我还尝试从 TestController.php 中要求 vendor/autoload.php 并尝试$_SERVER['DOCUMENT_ROOT']在 TestController.php 中手动设置
如何在运行 TestController.php 时自动加载命名空间,以便 create() 函数从正确的位置调用 mkdir()?
慕婉清6462132
www说