---
title: 'Фейковый диск для тестов в Laravel'
url: 'https://graker.ru/news/2018/06/09/laravel-fake-storage'
language: ru
type: post
author: 'Роман Грачев'
published: '2018-06-09T10:25:00+03:00'
updated: '2018-06-09T10:28:23+03:00'
categories:
  - Laravel
  - Программирование
---

# Фейковый диск для тестов в Laravel

Вдогонку к предыдущему посту — пара слов про создание фейковых дисков для тестов.

Как гласит [документация](https://laravel.com/docs/5.6/mocking#storage-fake), с помощью фасада `Storage` мы можем легко создать фейковый диск для тестов. Достаточно выполнить код:

```
Storage::fake($disk_name);
```

где `$disk_name` — название диска (если не указать, будет создан фейк для дефолтного диска).

Дальше в доках говорится, что можно тестировать аплоады с помощью класса `UploadedFile`, и это всё достаточно просто и понятно. Но так как это практически всё, что написано в доках по данному вопросу — может сложиться ошибочное впечатление, что тестировать аплоады — предел наших возможностей с фейковыми дисками.

Что еще следовало бы, на мой взгляд, подчеркнуть, так это то, что фейковый диск — это не какая-то виртуальная конструкция с набором поддельных методов. Это самый настоящий диск, то есть директория, которая появится в `storage/framework/testing`. Так что с помощью фейкового диска можно осуществлять (то есть тестировать) ровно то же самое, что с помощью обычного. Создавать файлы и директории, обрабатывать файлы с помощью сторонних библиотек (PHPWord, к примеру), удалять, копировать и даже возвращать на скачивание.

Что довольно удобно, так как тесты не смешиваются с рабочими файловыми структурами проекта.
