Rumah > pembangunan bahagian belakang > tutorial php > Masa Pembekuan: Menguji URL Penyimpanan Sementara Laravel

Masa Pembekuan: Menguji URL Penyimpanan Sementara Laravel

DDD
Lepaskan: 2025-01-28 20:04:13
asal
224 orang telah melayarinya

Freezing Time: Testing Laravel Temporary Storage URLs

Dalam artikel sebelumnya "Menguji URL Interim dalam Penyimpanan Laravel", kami membincangkan teknik dua kaedah

untuk menguji Laravel. Walaupun ia tidak menyokong Storage::temporaryUrl(), kami menunjukkan cara menggunakan simulasi untuk mensimulasikan tingkah lakunya dengan berkesan. Sekiranya anda belum membacanya, disarankan agar anda membacanya terlebih dahulu untuk memahami pengetahuan asas ujian URL sementara di Laravel. Storage::fake temporaryUrl Artikel ini akan dalam perbincangan mengenai bagaimana untuk melepasi masa pembekuan untuk membuat ujian URL sementara lebih dipercayai, terutamanya dari segi fungsi -fungsi sensitif. Kami akan menggunakan fungsi bantu ujian Laravel yang dibina dan fungsi operasi masa karbon untuk menyelesaikan potensi ketidakkonsistenan dalam ujian.

mengapa masa beku penting

URL sementara biasanya mengandungi setem masa yang telah tamat tempoh untuk menjadikannya sensitif terhadap masa. Dalam persekitaran ujian, sedikit kelewatan semasa proses pelaksanaan akan menyebabkan masa tamat tempoh tidak sepadan, mengakibatkan kegagalan ujian. Contohnya:

Apabila setem masa tamat yang dijana semasa pelaksanaan ujian sedikit berbeza kerana peralihan masa, ini akan berlaku. Masa Frost memastikan bahawa semua operasi yang berkaitan dengan pulangan masa kepada nilai yang konsisten untuk menghapuskan perbezaan ini.

<code>断言两个字符串相等失败。
预期值:'http://localhost/test/image?expiration=1737729799'
实际值:'http://localhost/test/image?expiration=1737729800'</code>
Salin selepas log masuk
Salin selepas log masuk
Masa Laravel Fungsi Auxiliary Frozen

Laravel menyediakan beberapa kaedah untuk membekukan dan mengendalikan masa dalam ujian:

    : Masa beku ke saat sekarang. Bila -bila masa untuk panggilan berasaskan masa akan menggunakan masa pembekuan ini.
  • $this->freezeTime() : Meniru titik tertentu untuk bergerak ke masa.
  • $this->travelTo(Carbon::now()): Tetapkan masa semasa untuk semua operasi karbon.
  • Kaedah ini membolehkan anda mengawal peredaran masa dan memastikan konsistensi ujian. Carbon::setTestNow(Carbon::now()) Untuk maklumat lanjut, sila rujuk sumber -sumber berikut:
Masa beku dalam ujian Laravel

masa beku dalam ujian

    Contoh praktikal: Gunakan URL sementara untuk mendapatkan imej luaran
  • pengawal
  • Ini adalah imej yang diperoleh dari sumber luaran, disimpan dalam storan tempatan, dan menghasilkan URL sementara untuk membuat pengawal redirect:

Kaedah ini memastikan bahawa jika imej tidak wujud, ia akan diperoleh dan disimpan dari luar, dan kemudian pengguna diarahkan ke URL sementara imej.

pengawal ujian

Berikut adalah cara menggunakan masa beku untuk menguji fungsi di atas:

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

Mata Utama:

  1. : Pastikan operasi berasaskan semua masa dalam ujian menggunakan masa yang sama. $this->freezeTime() Penegasan penyimpanan
  2. :
  3. : Fail tidak wujud sebelum operasi pengesahan.
      : Fail telah disimpan selepas mengesahkan operasi.
    • assertMissing
    • simulasi http assertExists: simulasi panggilan API luaran untuk mendapatkan imej.
    Pengesahan URL sementara
  4. : Perbandingan jangkaan dan URL sementara sebenar, kerana masa membeku, mereka tetap konsisten.
  5. Jika tidak ada masa pembekuan, ujian ini mungkin gagal kerana setem masa dalam URL sementara.
  6. Kesimpulan Masa beku adalah teknologi yang mudah dan berkuasa yang dapat memastikan kebolehpercayaan ujian sensitif masa. Dengan menggabungkan fungsi tambahan ujian Laravel () dan kaedah operasi masa karbon (), anda boleh menghapuskan ketidakkonsistenan yang disebabkan oleh kelewatan pelaksanaan.
Dengan mengadopsi amalan ini, anda akan mempunyai ujian yang boleh meramalkan dan mempunyai URL sementara yang lebih kuat dan fungsi sensitif masa yang lain.

Atas ialah kandungan terperinci Masa Pembekuan: Menguji URL Penyimpanan Sementara Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan