Ujian Laravel menggunakan unit PHP - Ujian fail tidak menyokong jenis
P粉087074897
P粉087074897 2023-09-14 23:41:39
0
1
484

Saya menggunakan Laravel 10 dan Livewire 2. Saya sedang menulis ujian mudah untuk komponen, yang hanya borang muat naik. Saya mengalami ralat mesej misteri:

FAILED Tests\Feature\Livewire\UploadAssetTest > book can be saved correctly Type is not supported at vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php:88 84▕ default => json_encode($data, $this->encodingOptions), 85▕ }; 86▕ 87▕ if (! $this->hasValidJson(json_last_error())) { ➜ 88▕ throw new InvalidArgumentException(json_last_error_msg()); 89▕ } 90▕ 91▕ return $this->update(); 92▕ }

Ujiannya ialah:

/** @test */ public function book_can_be_saved_correctly() { $admin = User::factory()->create(); $this->actingAs($admin); Storage::fake('private'); $testBook = UploadedFile::fake()->create('private/books/test_book.pdf'); $testCover = UploadedFile::fake()->image('private/covers/test_image.png'); $emptyForm = (new UploadBookService())->buildForm(); $book = array_merge($emptyForm,[ 'title' => 'Title Test', 'author' => 'Author Test', 'description' => 'Description Test', 'publishedAt' => '2022', 'cover' => $testCover, 'book' => $testBook, ]); $component = Livewire::test(UploadAsset::class) ->set('assetMeta', $book) ->call('save'); Storage::assertExists('books/test_book.pdf'); Storage::assertExists('covers/test_cover.png'); }

Untuk perkara yang saya debug setakat ini, sebaik sahaja saya memanggilset()dalam ujian saya, ralat dicetuskan. Saya boleh mengesahkan bahawa komponen itu berfungsi apabila digunakan.

P粉087074897
P粉087074897

membalas semua (1)
P粉684720851

Ralatnya ialah nilai yang anda berikan tidak serasi dengan fungsi json_encode(), saya akan mencadangkan perkara berikut:

$book = array_merge($emptyForm,[ 'title' => 'Title Test', 'author' => 'Author Test', 'description' => 'Description Test', 'publishedAt' => '2022', 'coverPath' => 'private/covers/test_image.png', 'bookPath' => 'private/books/test_book.pdf', ]); $component = Livewire::test(UploadAsset::class) ->set('assetMeta', $book) ->call('save');
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!