前の記事「Laravel Storageで暫定URLをテストする」では、Laravelをテストする2つの
メソッドの手法について説明しました。 はサポートしていませんが、シミュレーションを使用してその動作を効果的にシミュレートする方法を示します。まだ読んでいない場合は、Laravelで一時的なURLをテストするための基本的な知識を理解するために、最初に読むことをお勧めします。 Storage::temporaryUrl()
この記事は、特に時間に敏感な機能の観点から、一時的なURLテストをより信頼性を高めるために凍結時間に合格する方法について詳細に説明します。 Laravelの構築されたテスト補助機能と炭素の時間動作機能を使用して、テストの潜在的な矛盾を解決します。 Storage::fake
temporaryUrl
凍結時間が重要な理由
一時的なURLには通常、時間に敏感になるために期限切れのタイムスタンプが含まれています。テスト環境では、実行プロセス中のわずかな遅延により、有効期限が一致しないようになり、テストの障害が発生します。たとえば、
laravelの時間凍結補助関数
<code>断言两个字符串相等失败。 预期值:'http://localhost/test/image?expiration=1737729799' 实际值:'http://localhost/test/image?expiration=1737729800'</code>
Laravelは、テストで時間を凍結および操作するためのいくつかの方法を提供します:
:現在の瞬間までの凍結時間。いつでも時間ベースの通話はこの凍結時間を使用します。
$this->freezeTime()
:移動する特定のポイントをシミュレートします。
$this->travelTo(Carbon::now())
Carbon::setTestNow(Carbon::now())
Laravelテストでの凍結時間
実用的な例:一時的なURLを使用して外部画像を取得する
コントローラー
<code>断言两个字符串相等失败。 预期值:'http://localhost/test/image?expiration=1737729799' 实际值:'http://localhost/test/image?expiration=1737729800'</code>
$this->freezeTime()
ストレージアサーションassertMissing
assertExists
:シミュレーション外部API呼び出しは画像を取得します。 以上が凍結時間:Laravelの一時的なストレージURLをテストしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。