Heim > Backend-Entwicklung > PHP-Tutorial > Gefrierzeit: Testen von Laravel temporärer Speicher -URLs

Gefrierzeit: Testen von Laravel temporärer Speicher -URLs

DDD
Freigeben: 2025-01-28 20:04:13
Original
224 Leute haben es durchsucht

Freezing Time: Testing Laravel Temporary Storage URLs

In dem vorherigen Artikel "Testen Sie die vorläufige URL in Laravel -Speicher", diskutierten wir die Technik von zwei Methoden zum Testen von Laravel. Obwohl es nicht unterstützt, zeigen wir, wie Simulation verwendet wird, um sein Verhalten effektiv zu simulieren. Wenn Sie es noch nicht gelesen haben, wird empfohlen, es zuerst zu lesen, um die Grundkenntnisse über das Testen der temporären URL in Laravel zu verstehen.

Storage::temporaryUrl() Dieser Artikel wird in den Teilen von Diskussionen darüber, wie die Gefrierzeit überschritten wird, um den temporären URL -Test zuverlässiger zu gestalten, insbesondere in Bezug auf zeitsensible Funktionen. Wir werden Laravels gebaute Testerleiterfunktionen und die Zeitbetriebsfunktion von Carbon verwenden, um die potenzielle Inkonsistenz im Test zu lösen. Storage::fake temporaryUrl Warum gefrorene Zeit wichtig ist

Temporäre URL enthält normalerweise abgelaufene Zeitstempel, um sie für die Zeit empfindlich zu machen. In der Testumgebung führt eine geringe Verzögerung während des Ausführungsprozesses dazu, dass die Ablaufzeit nicht übereinstimmt, was zum Ausfall des Tests führt. Zum Beispiel:

Wenn der während der Testausführung erzeugte Ablaufzeitstempel aufgrund der Zeitverschiebung etwas unterschiedlich ist, wird dies geschehen. Frostzeit stellen sicher, dass alle Vorgänge in Bezug auf die Zeit zu konsistenten Werten zurückkehren, um diesen Unterschied zu beseitigen.

Laravels Zeit gefrorene Hilfsfunktion
<code>断言两个字符串相等失败。
预期值:'http://localhost/test/image?expiration=1737729799'
实际值:'http://localhost/test/image?expiration=1737729800'</code>
Nach dem Login kopieren
Nach dem Login kopieren

laravel bietet verschiedene Methoden zum Einfrieren und Betrieb von Zeit im Testen:

: Gefrorene Zeit zum aktuellen Moment. An jeder Zeit für zeitbasierte Anrufe nutzen Anrufe diese Gefrierzeit.
  • $this->freezeTime(): simuliert den spezifischen Punkt der Zeit.
  • : Stellen Sie die aktuelle Zeit für alle Kohlenstoffoperationen fest. $this->travelTo(Carbon::now())
  • Mit diesen Methoden können Sie den Zeitverlauf steuern und die Konsistenz des Tests sicherstellen.
  • Weitere Informationen finden Sie unter folgenden Ressourcen: Carbon::setTestNow(Carbon::now())
  • gefrorene Zeit im Laravel -Test

gefrorene Zeit im Test

Praktisches Beispiel: Verwenden Sie temporäre URL, um externe Bilder zu erhalten
  • Controller
  • Dies ist ein erhaltenes Bild aus der externen Quelle, speichert es im lokalen Speicher und erzeugt eine temporäre URL, um einen Umleitungsregler zu erstellen:
Diese Methode stellt sicher, dass das Bild von außen erhalten und gespeichert wird und der Benutzer an die temporäre URL des Bildes umgeleitet wird.

Test Controller

Folgendes ist, wie man Zeit verwendet, um die obigen Funktionen zu testen:

<code>断言两个字符串相等失败。
预期值:'http://localhost/test/image?expiration=1737729799'
实际值:'http://localhost/test/image?expiration=1737729800'</code>
Nach dem Login kopieren
Nach dem Login kopieren

Schlüsselpunkte:

  1. : Stellen Sie sicher, dass alle Zeitvorgänge im Test gleichzeitig verwendet werden. $this->freezeTime() Speicherbehandlungen
  2. :
  3. : Die Datei existiert nicht vor dem Überprüfungsvorgang.
      : Die Datei wurde nach Bestätigung des Vorgangs gespeichert.
    • assertMissing
    • HTTP -Simulation assertExists: Simulation externe API -Aufrufe, um Bilder zu erhalten.
    Temporäre URL -Überprüfung
  4. : Vergleich der Erwartungen und tatsächlichen temporären URLs, da die Zeit einfrieren, bleiben sie konsistent.
  5. Wenn es keine Gefrierzeit gibt, kann dieser Test aufgrund der Zeitstempel in der temporären URL fehlschlagen.
  6. Schlussfolgerung Die gefrorene Zeit ist eine einfache und leistungsstarke Technologie, die die Zuverlässigkeit der zeitsensitiven Tests gewährleisten kann. Durch die Kombination von Laravel -Test -Hilfsfunktionen () und Carbon -Zeitbetriebsmethode () können Sie die durch Ausführungsverzögerung verursachte Inkonsistenz beseitigen.
Durch die Übernahme dieser Praktiken haben Sie Tests, die vorhersagen und leistungsfähigere temporäre URLs und andere zeitsensible Funktionen haben können.

Das obige ist der detaillierte Inhalt vonGefrierzeit: Testen von Laravel temporärer Speicher -URLs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage