Я создал процедуру импорта maatwebsite / excel и хочу ее протестировать.
Страница тестирования maatwebsite / excel не предоставляет мне никакой другой информации, кроме как подделать ее. Но мне нужно загрузить свой настоящий файл Excel, так как я хочу проверить, правильно ли были обработаны данные из файла Excel.
Вот мое поле ввода для загрузки и соответствующая кнопка для попадания в конечную точку /import
<form action="/import" method="post" enctype="multipart/form-data">
@csrf
<div class="form-group">
<input type="file" class="form-control-file file-path" name="fileToUpload">
</div>
<button type="submit" class="btn btn-primary">Import File</button>
</form>
со стороны контроллера загруженный файл будет обработан и импортирован.
...
public function store(Request $request) {
$request->validate([
'fileToUpload' => 'required|file|max:4096|mimes:xls,xlsx',
]);
// start the import
Excel::import(new SheetNavigator, request()->file('fileToUpload'));
...
Файл, который необходимо импортировать, находится в моей тестовой среде по адресу:
/tests
/files
/myexcel.xlsx
public function test_user_can_import_file() {
Excel::fake();
$datafile = new UploadedFile(
base_path('tests/files/myfile.xlsx'),
'myfile.xlsx',
'xlsx',
13071,
true);
$res = $this->post('/import', [
'fileToUpload' => $datafile
]);
// asserting, that everything works..
}
Мне нужен тест, чтобы убедиться, что загрузка прошла успешно и была запущена процедура импорта. Я перепробовал все, от подделки до использования хранилищ.
Я ценю любую помощь, спасибо!
Крис