globale Variablen sind null, wenn PHPUnit verwendet wird

8

Ich setze PHPUnit-Tests in ein bestehendes Projekt ein. Variablen für globale Konstanten werden häufig verwendet. In meiner Einheit schlagen Testfunktionen fehl, weil die globalen Variablen null sind. Hier ist ein Beispiel für einen fehlgeschlagenen Test

%Vor%

Jede Hilfe wäre sehr willkommen

Aktualisierung: Ich habe versucht, statische und entfernen

zu entfernen %Vor%

Zur Klassendeklaration ohne Erfolg.

    
rp90 31.01.2012, 01:08
quelle

2 Antworten

8

Diese Antwort funktioniert nicht. Ich stellte eine praktisch identische Frage hier und endete mit einer Antwort, die mehr Sinn macht; Sie können die geschützte Eigenschaft $ backupGlobals in der Testklasse, die PHPUnit sehen wird, nicht überschreiben. Wenn Sie in der Befehlszeile arbeiten, können Sie Globals zum Laufen bringen, indem Sie eine XML-Konfigurationsdatei erstellen und backupGlobals dort auf false einrichten.

EDIT: Sie müssen $ secret_key global deklarieren und ihm im globalen Bereich einen Wert zuweisen, wenn Sie PHPUnit verwenden. PHP setzt standardmäßig global initialisierte Variablen in den globalen Namespace, aber PHPUnit ändert diesen Standard beim Sichern von globalen Variablen!

Folgende Änderungen müssen vorgenommen werden:

%Vor%

Ihr Code sollte jetzt funktionieren.

    
Malovich 12.03.2012 21:22
quelle
4

Sie sollten phpunit bitten, Globals nicht zu sichern

%Vor%

wie es im Originalartikel von S. Bergmann heißt: Ссылка

    
zerkms 31.01.2012 01:16
quelle

Tags und Links