То, что вы могли бы использовать для решения этой проблемы, это светильники.Среда тестирования Laravel по сути является PHPUnit, поэтому я не вижу причин, по которым она не будет работать.
определяет ваш тест следующим образом:
use Tests\TestCase;
class ExampleTest extends TestCase {
protected function setUp() {
parent::setUp();
Storage::fake('avatars');
$uploadResponse = $this->json('POST', '/avatar', [
'avatar' => UploadedFile::fake()->image('avatar.jpg')
]);
}
protected function tearDown() {
parent::tearDown();
}
public function testAvatarUpload() {
// Download the first avatar
$response = $this->get('/download/avatar/1');
$response->assertStatus(200);
}
}
setUp
и tearDown
вызывают соответственно, до и после каждого теста в классе.Таким образом, перед каждым методом тестирования setUp
стирает фальшивый диск avatars
и запускает запрос.Поскольку после теста нечего делать (поскольку Storage::fake()
заменяет диск, если он уже существует), метод пуст;Я оставил это здесь только для того, чтобы завершить пример.
Здесь есть довольно хорошая документация об этой функции PHPunit.
Что касается размещения файла там, один разу вас setUp
работает правильно, ничто не мешает вам выбросить на него файл.