ホームページ > バックエンド開発 > PHPチュートリアル > 凍結時間:Laravelの一時的なストレージURLをテストします

凍結時間:Laravelの一時的なストレージURLをテストします

DDD
リリース: 2025-01-28 20:04:13
オリジナル
224 人が閲覧しました

Freezing Time: Testing Laravel Temporary Storage URLs

前の記事「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を使用して外部画像を取得する

コントローラー
    これは、外部ソースからの取得画像であり、ローカルストレージに保存され、一時的なURLを生成してリダイレクトコントローラーを作成します。
  • この方法により、画像が存在しない場合、取得して外側から保存され、ユーザーが画像の一時的なURLにリダイレクトされることが保証されます。
  • テストコントローラー
以下は、上記の機能をテストするために時間フローズンを使用する方法です。
<code>断言两个字符串相等失败。
预期值:'http://localhost/test/image?expiration=1737729799'
实际值:'http://localhost/test/image?expiration=1737729800'</code>
ログイン後にコピー
ログイン後にコピー

キーポイント:

  1. :テストでのすべての時間ベースの操作が同じ時間に使用されることを確認してください。 $this->freezeTime() ストレージアサーション
  2. :検証操作の前にファイルは存在しません。
      :操作を確認した後にファイルが保存されています。
    • assertMissing
    • HTTPシミュレーションassertExists:シミュレーション外部API呼び出しは画像を取得します。
    一時的なURL検証
  3. :期待と実際の一時的なURLの比較は、時間が凍結しているため、一貫性を保ちます。
  4. 凍結時間がない場合、一時的なURLのタイムスタンプのためにこのテストが失敗する可能性があります。
  5. 結論 凍結時間は、時間に敏感なテストの信頼性を確保できるシンプルで強力なテクノロジーです。 Laravelのテスト補助関数()とCarbonの時間操作方法()を組み合わせることにより、実行遅延によって引き起こされる矛盾を排除できます。
  6. これらのプラクティスを採用することにより、より強力な一時的なURLおよびその他の時間に敏感な機能を予測し、持つことができるテストがあります。

以上が凍結時間:Laravelの一時的なストレージURLをテストしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート