Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengendalikan Serialisasi Penutupan dalam Senario Pengujian Unit?
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'; };
Penyelesaian 1: Menggunakan Fungsi Biasa
Satu penyelesaian ialah menggantikan penutupan dengan fungsi biasa:
function emailCallback() { return 'ZendMail_' . microtime(true) . '.tmp'; } $callback = "emailCallback" ;
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");
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!