小编Dev*_*arb的帖子

如何在PHPUnit中测试; 使用Laravel编写的API上传CSV文件?

我想通过Laravel API上传CSV文件,然后使用PHPUnit测试上传.

store()在Controller和testCreate()函数中的功能基本上是什么样的.

这是我到目前为止所得到的:

<?php

use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Foundation\Testing\WithoutMiddleware;

class ProspectListControllerTest extends TestCase
{

use WithoutMiddleware, DatabaseTransactions;

public function testCreate()
{

    $file = new Symfony\Component\HttpFoundation\File\UploadedFile(storage_path('/crm/data/test-file.csv'), 'test-file.csv', 'text/plain', 446, null, true);

    $this->call('POST', '/api/lists-imports/', [], [], ['csv_file' => $file]);
    $this->dump()->assertResponseOk();
  }
}
Run Code Online (Sandbox Code Playgroud)

和控制器方法看起来像:

<?php

namespace App\Http\Controllers;

use App\ListImport;
use Illuminate\Http\Request;

class ListImportController extends Controller
{
public $model = ListImport::class;

public function store(Request $request, ListImport $importList)
{
    $request->file('importFile')->move(public_path('storage.crm.data'), $request->file('importFile')->getClientOriginalName());

    $importList->importFile = public_path('storage.crm.data') . '/' . $request->file('importFile')->getClientOriginalName();

    $importList->save();

}
} …
Run Code Online (Sandbox Code Playgroud)

php csv phpunit unit-testing laravel

5
推荐指数
2
解决办法
1551
查看次数

标签 统计

csv ×1

laravel ×1

php ×1

phpunit ×1

unit-testing ×1