Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengendalikan Serialisasi Penutupan dalam Senario Pengujian Unit?

Bagaimana untuk Mengendalikan Serialisasi Penutupan dalam Senario Pengujian Unit?

Barbara Streisand
Lepaskan: 2024-10-24 04:10:02
asal
849 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!

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