РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1266 of 1392 menu

Класс Storage

Класс Storage в контексте тестирования Laravel предоставляет удобные инструменты для эмуляции файловых систем и проверки взаимодействия приложения с файлами. Основной метод fake позволяет создать виртуальную файловую систему, которая не взаимодействует с реальным диском. Это делает тесты быстрее и изолирует их от внешних факторов. Класс также предоставляет методы для проверки существования файлов и директорий в эмулируемой файловой системе.

Метод fake - создание виртуальной файловой системы

Метод fake создаёт эмуляцию диска для тестирования. В качестве первого параметра принимает имя диска, которое должно быть определено в конфигурационном файле filesystems.php. Вторым параметром можно передать массив конфигурации для эмуляции.

<?php Storage::fake('local'); ?>

Пример

Давайте создадим эмуляцию диска и проверим, что файл успешно сохранился в виртуальной системе:

<?php namespace Tests\Unit; use Illuminate\Support\Facades\Storage; use Tests\TestCase; class StorageTest extends TestCase { public function test_file_is_stored() { Storage::fake('local'); $res = Storage::disk('local')->put('file.txt', 'content'); Storage::disk('local')->assertExists('file.txt'); $this->assertTrue($res); } } ?>

Результат выполнения кода:

"true"

Пример

Эмуляция позволяет изолировать тесты от реальной файловой системы. В этом примере мы сохраняем файл в виртуальную систему и проверяем, что он не попал на реальный диск:

<?php namespace Tests\Unit; use Illuminate\Support\Facades\Storage; use Tests\TestCase; class StorageIsolationTest extends TestCase { public function test_isolation_from_real_filesystem() { Storage::fake('local'); Storage::disk('local')->put('test.txt', 'data'); $realExists = file_exists(storage_path('app/test.txt')); $this->assertFalse($realExists); } } ?>

Результат выполнения кода:

"false"

Метод assertExists - проверка существования файла

Метод assertExists проверяет, что файл или директория существуют в эмулируемой файловой системе. Принимает имя файла или директории в качестве аргумента. Метод используется внутри тестовых методов для верификации операций с файлами.

<?php Storage::disk('local')->assertExists('path/to/file.txt'); ?>

Пример

Проверим существование нескольких файлов после их сохранения в виртуальной файловой системе:

<?php namespace Tests\Unit; use Illuminate\Support\Facades\Storage; use Tests\TestCase; class StorageAssertTest extends TestCase { public function test_multiple_files_exist() { Storage::fake('local'); $disk = Storage::disk('local'); $disk->put('file1.txt', 'content 1'); $disk->put('file2.txt', 'content 2'); $disk->put('file3.txt', 'content 3'); $disk->assertExists('file1.txt'); $disk->assertExists('file2.txt'); $disk->assertExists('file3.txt'); $this->assertTrue(true); } } ?>

Результат выполнения кода:

"true"

Смотрите также

  • метод fake,
    который создаёт виртуальную файловую систему для тестов
  • метод assertExists,
    который проверяет существование файла в эмуляции
  • класс TestCase,
    который является базовым для всех тестов Laravel
  • метод setUp,
    который выполняется перед каждым тестовым методом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить