Bagaimana untuk Mengendalikan Serialisasi Penutupan dalam Senario Pengujian Unit?

Barbara Streisand
Lepaskan: 2024-10-24 04:10:02
asal
721 orang telah melayarinya

How to Handle Serialization of Closures in Unit Testing Scenarios?

Pengecualian: Pensirian 'Penutupan'

Dalam senario ujian unit, anda menghadapi pengecualian semasa pelaksanaan ujian yang melibatkan penutupan di dalam _initMailer kaedah. Pengecualian ini berkaitan dengan siri penutupan, yang tidak dibenarkan dalam persekitaran ujian PHP.

Secara khusus, penutupan anda digunakan sebagai fungsi panggil balik dalam contoh Zend_Mail_Transport_File:

$callback = function()
{
    return 'ZendMail_' . microtime(true) .'.tmp';
};
Salin selepas log masuk

Penyelesaian 1: Menggunakan Fungsi Biasa

Satu penyelesaian ialah menggantikan penutupan dengan fungsi biasa:

function emailCallback() {
    return 'ZendMail_' . microtime(true) . '.tmp';
}
$callback = "emailCallback" ;
Salin selepas log masuk

Penyelesaian 2: Panggilan Kaedah Tidak Langsung Menggunakan Array Pembolehubah

Sebagai alternatif, anda boleh menggunakan panggilan kaedah tidak langsung melalui pembolehubah tatasusunan:

$callback = array($this,"aMethodInYourClass");
Salin selepas log masuk

Ini bermakna kaedah aMethodInYourClass akan digunakan apabila panggilan balik dipanggil.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Serialisasi Penutupan dalam Senario Pengujian Unit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!