【发布时间】:2019-06-21 01:47:05
【问题描述】:
我正在尝试为我的 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 并尝试在 TestController.php 中手动设置 $_SERVER['DOCUMENT_ROOT']
如何在运行 TestController.php 时自动加载命名空间,以便 create() 函数从正确的位置调用 mkdir()?
【问题讨论】:
标签: php testing phpunit slim autoload