Heim > Backend-Entwicklung > PHP-Tutorial > Wie gehe ich mit der Serialisierung von Abschlüssen in Unit-Testszenarien um?

Wie gehe ich mit der Serialisierung von Abschlüssen in Unit-Testszenarien um?

Barbara Streisand
Freigeben: 2024-10-24 04:10:02
Original
821 Leute haben es durchsucht

How to Handle Serialization of Closures in Unit Testing Scenarios?

Ausnahme: Serialisierung von „Closure“

In einem Unit-Testszenario sind Sie während der Testausführung auf eine Ausnahme gestoßen, die einen Abschluss innerhalb des _initMailer beinhaltet Verfahren. Diese Ausnahme bezieht sich auf die Serialisierung von Abschlüssen, die in der PHP-Testumgebung nicht zulässig ist.

Konkret wird Ihr Abschluss als Callback-Funktion innerhalb einer Zend_Mail_Transport_File-Instanz verwendet:

$callback = function()
{
    return 'ZendMail_' . microtime(true) .'.tmp';
};
Nach dem Login kopieren

Lösung 1: Verwenden einer regulären Funktion

Eine Lösung besteht darin, den Abschluss durch eine reguläre Funktion zu ersetzen:

function emailCallback() {
    return 'ZendMail_' . microtime(true) . '.tmp';
}
$callback = "emailCallback" ;
Nach dem Login kopieren

Lösung 2: Indirekter Methodenaufruf mithilfe eines Arrays Variable

Alternativ können Sie einen indirekten Methodenaufruf über eine Array-Variable verwenden:

$callback = array($this,"aMethodInYourClass");
Nach dem Login kopieren

Das bedeutet, dass die aMethodInYourClass-Methode aufgerufen wird, wenn der Rückruf aufgerufen wird.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit der Serialisierung von Abschlüssen in Unit-Testszenarien um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage