Метод fake
Метод fake класса Storage применяется в тестах для создания виртуального диска, который эмулирует работу с файловой системой. Все операции с файлами выполняются в памяти, что обеспечивает изоляцию тестов и высокую скорость выполнения. Первым параметром передаётся имя диска, вторым - массив конфигурации диска.
Синтаксис
<?php
Storage::fake($disk, $config);
?>
Пример
Давайте создадим fake-диск и проверим создание файла:
<?php
use Illuminate\Support\Facades\Storage;
use Tests\TestCase;
class FileTest extends TestCase
{
public function test_file_creation()
{
$disk = Storage::fake('local');
$disk->put('file.txt', 'content');
$res = $disk->exists('file.txt');
echo $res;
}
}
?>
Результат выполнения кода:
true
Пример
Давайте проверим работу метода assertExists с fake-диском:
<?php
use Illuminate\Support\Facades\Storage;
use Tests\TestCase;
class FileTest extends TestCase
{
public function test_file_exists()
{
$disk = Storage::fake('local');
$disk->put('file.txt', 'content');
$disk->assertExists('file.txt');
}
}
?>
Пример
Давайте создадим fake-диск с произвольной конфигурацией:
<?php
use Illuminate\Support\Facades\Storage;
use Tests\TestCase;
class FileTest extends TestCase
{
public function test_custom_disk()
{
$disk = Storage::fake('custom', [
'driver' => 'local',
'root' => '/custom/path',
]);
$disk->put('file.txt', 'content');
$res = $disk->exists('file.txt');
echo $res;
}
}
?>
Результат выполнения кода:
true
Смотрите также
-
класс
Storage,
который предоставляет фасад для работы с файловыми системами -
метод
assertExists,
который проверяет существование файла на диске -
класс
TestCase,
который является базовым классом для всех тестов -
класс
RefreshDatabase,
который обновляет состояние базы данных между тестами