Я пытаюсь написать простой модульный тест для одной функции в моем приложении 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 для начальной загрузки файла autoload.php, вставив bootstrap = "vendor / autoload.php "в конфигурационный файл.
Я также пытался запросить vendor / autoload.php от TestController.php и пытался вручную установить $_SERVER['DOCUMENT_ROOT']
в TestController.php
Как я могу автоматически загружать пространства имен во время работыTestController.php, чтобы функция create () вызывала mkdir () из правильного местоположения?