Mocking / Stubbing eines Objekts einer Klasse, die arrayaccess in PHPUnit implementiert

8

Hier ist der Konstruktor der Klasse, für die ich eine Testsuite schreibe (er erweitert mysqli):

%Vor%

Die Klasse Config , die an den Konstruktor übergeben wird, implementiert die in php:

eingebaute Schnittstelle arrayaccess %Vor%

Wie mache ich das Config -Objekt? Welchen sollte ich verwenden und warum?

Vielen Dank im Voraus!

    
AndyPerlitch 15.05.2012, 19:03
quelle

1 Antwort

15

Wenn Sie einfach eine Config -Instanz von einem Array erstellen können, wäre das meine Präferenz. Während Sie Ihre Einheiten isoliert testen möchten, wo es praktisch ist, sollten einfache Mitarbeiter wie Config sicher genug sein, um sie im Test zu verwenden. Der Code zum Einrichten ist wahrscheinlich einfacher zu lesen und zu schreiben (weniger fehleranfällig) als das äquivalente Mock-Objekt.

%Vor%

Davon abgesehen verspotten Sie ein Objekt, das ArrayAccess implementiert, genau wie jedes andere Objekt .

%Vor%

Sie können auch at verwenden, um eine bestimmte Zugriffsreihenfolge festzulegen, aber Sie werden den Test auf diese Weise sehr spröde machen.

    
David Harkness 15.05.2012, 23:32
quelle

Tags und Links