Unittests mit SuperProxy
Heute möchte ich euch jemanden vorstellen:
SuperProxy
Bei SuperProxy handelt es sich um eine Klasse, die es ermöglicht auf private und protected Methoden und Member zuzugreifen. Dies macht Sinn, wenn man in seinen UnitTests nicht nur das public interface testen möchte.
Hierzu bindet man die SuperProxy Klasse einfach in seinen Test ein und übergibt ihr den Namen der zu testenden Klasse:
$oProxy = SuperProxy::getProxy( 'MyClass' );
Benötigt die zu testende Klasse Parameter für den constructor, kann man diese als 2. Parameter in einem array an den SuperProxy übergeben:
$oProxy = SuperProxy::getProxy( 'MyClass', array( $sParam1, $iParam2 ) );
Nun kann man wie auf public Methoden und Member auch auf die protected und private Member und Methoden zugreifen.
$oProxy->_sMyProtectedMember = 'new protected value'; $oProxy->_myProtecedFunction(); $oProxy->_sMyPrivateMember = 'new private value'; $oProxy->_myPrivateFunction();
Der SuperProxy ist OpenSource. Die Klasse wurde bei PHPClasses.org veröffentlicht und war dort für den “Innovation Award” für den Monat September nominiert, dabei belegte die SuperProxy – Klasse den 5. Platz
.
Natürlich steht der SuperProxy auch hier im Downloadbereich zur Verfügung.
Hier klicken
Viel Spaß beim testen!
Follow Me!