この記事は、laravel に関する関連知識を提供します。Laravel チームは、部分的なキューのフォージェリ、freezeTime() 補助関数、ストレージのassertDirectoryEmpty() アサーションなどを含むバージョン 9.5 をリリースしました。助けるために。
[関連する推奨事項: laravel ビデオ ]
Laravel チームがバージョン 9.5 をリリースしました。これには、部分的なキューのフォージェリ、freezeTime () ヘルパーが含まれています関数、ストレージのassertDirectoryEmpty () アサーション、assertJsonPath () のクロージャーなど:
@Lito は、Collect::implode() コールバックのサポートを簡素化するために貢献しました。 ->map()->implode() 呼び出し:
// 之前<br/>{{ $user->cities->map(fn ($city) => $city->name.' ('.$city->state->name.')')->implode(', ') }}<br/>// 使用回调 <br/>{{ $user->cities->implode(fn ($city) => $city->name.' ('.$city->state->name.')', ', ') }}<br/>
Mark Beech は Storage::fake () を使用して貢献しました。空のディレクトリをアサートします:
// 9.5 版本之前<br/>$this->assertEmpty(Storage::disk('temp')->allFiles('/foo'));<br/>// +9.5<br/>Storage::disk('temp')->assertDirectoryEmpty('/foo');<br/>
ディレクトリ内にファイルがなく、他のサブディレクトリのみがある場合、他のフォルダ/ファイルが含まれているため、アサーションは失敗します。プル リクエストのディスカッションの例を次に示します。
Storage::fake('temp');<br/>Storage::disk('temp')->put('/foo/bar.txt', 'string');<br/>Storage::disk('temp')->assertDirectoryEmpty('/'); // 失败<br/>
Fabien Villepinte は、後方互換性のある割り込み機能を使用せずに、assertJsonPath にクロージャを渡すことに貢献しました。
上記の例は文字列バージョンを使用することでより単純に見えますが、パス アサーションに関するより複雑なロジックが必要な場合は、クロージャを使用できるようになりました。 部分的なキューのフェイクTaylor Otwell は、テスト対象のキューへの部分的なフェイクを提供しました:$response = TestResponse::fromBaseResponse(new Response([<br/> 'data' => ['foo' => 'bar'],<br/>]));<br/>$response->assertJsonPath('data.foo', 'bar');<br/>$response->assertJsonPath('data.foo', fn ($value) => $value === 'bar');<br/>
Queue::fake([JobsToFake::class, /* ... */]);<br/>
// Define a `newThroughInstance` method<br/>protected function newThroughInstance($resource)<br/>{<br/> return (new \App\Models\ExampleEntity)->setTable($resource);<br/>}<br/>
Str:wrap('value')->wrap('"');<br/>Str::of('value')->wrap('"');<br/>str('value')->wrap('"');<br/>// 输出: "value"<br/>Str:wrap('is', 'This ', ' me!');<br/>Str::of('is')->wrap('This ', ' me!');<br/>str('is')->wrap('This ', ' me!');<br/>// 输出: This is me!<br/>
public function test_something()<br/>{<br/> $this->freezeTime();<br/> // 或将时间设置为日期的当前秒<br/> // 没有亚秒级精度。<br/> $this->freezeSecond();<br/>}<br/>
$this->travelTo(Carbon::now());<br/>
9.5.0 バージョン
New
#41405)
#41398)
#41422)
#41409)
#41425)
schedule:test コマンドに –name オプションを追加しました。 (#41439)
は、Illuminate/Database/Eloquent/Concerns/HasRelationships::newEveryoneThroughInstance() を定義します。 (#41444)
Illuminate/Support/Stringable::wrap() を追加しました (#41455)
テスト用補助関数「freezeTime」を追加しました。 (#41460)
Illuminate/Http/Client/PendingRequest.php::runBeforeSendingCallbacks() で beforeSending 呼び出しの使用を許可します。 (#41489)
修正
非推奨の警告から名前またはドメインをフィルターする際の修正ルート:リストの場合。 (#41421)
URL が空のステータス コードを返した場合の HTTP::pool 応答を修正しました。 (#41412)
Illuminate/Session/Middleware/AuthenticateSession.php のリコール名の解決を修正しました。 (#41429)
/Illuminate/Session/Middleware/AuthenticateSession.php で使用されているガード インスタンスを修正しました (#41447 )
#41465)
変更
#41418)
以上がLaravel 9.5 バージョンの新しい追加、修正、変更点をまとめます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。