Stellt Hilfsmerkmale für PHPUnit bereit.
dd()
und d()
TestDouble
$this->getDouble()
$this->verifyInvoked()
$this->verifyInvokedOnce()
$this->verifyInvokedMultipleTimes()
$this->verifyNeverInvoked()
ReflectionHelper
$this->getPrivateProperty()
$this->setPrivateProperty()
$this->getPrivateMethodInvoker()
DebugHelper
Laufen:
$ composer require --dev kenjis/phpunit-helper
TestDouble
Dieses Merkmal stellt Hilfsmethoden zum Erstellen von Scheinobjekten und zum Überprüfen von Aufrufen bereit.
Importieren Sie das Merkmal KenjisPhpUnitHelperTestDouble
in Ihre Testklasse:
<?php
declare (strict_types= 1 );
namespace Foo Bar Test Unit ;
use Kenjis PhpUnitHelper TestDouble ;
use PHPUnit Framework ;
final class BazTest extends Framework TestCase
{
use TestDouble;
}
$this->getDouble()
param | Typ | Beschreibung |
---|---|---|
$classname | Zeichenfolge | Klassenname |
$params | Array | [Methodenname => Rückgabewert] |
[[Methodenname => [Rückgabewert1, Rückgabewert2 [, ...]]] | ||
$constructor_params | falsch/Array | false: Konstruktor deaktivieren / Array: Konstruktorparameter |
gibt (Objekt) ein PHPUnit-Mock-Objekt returns
.
Ruft das PHPUnit-Mock-Objekt ab.
$ email = $ this -> getMockBuilder (CI_Email::class)
-> disableOriginalConstructor ()
-> onlyMethods ([ ' send ' ])
-> getMock ();
$ email -> method ( ' send ' )
-> willReturn ( true );
Sie könnten den Code oben wie folgt schreiben:
$ email = $ this -> getDouble (CI_Email::class, [ ' send ' => true ]);
Sie können „Closure“ als Rückgabewert einer simulierten Methode festlegen.
$ ret = function () {
throw new RuntimeException ( ' Cannot send email! ' );
};
$ mock = $ this -> getDouble (CI_Email::class, [ ' send ' => $ ret ]);
Sie können den Mock selbst auch als Rückgabewert einer Mock-Methode festlegen, indem Sie $this->returnSelf()
verwenden.
$ mock = $ this -> getDouble (CI_Email::class, [
' to ' => $ this -> returnSelf (),
' subject ' => $ this -> returnSelf (),
' send ' => true ,
]);
Sie können Mocks mit aufeinanderfolgenden Aufrufen erstellen.
$ mock = $ this -> getMockBuilder (CI_Email::class)
-> disableOriginalConstructor ()
-> onlyMethods ([ ' method ' ])
-> getMock ();
$ mock -> expects ( $ this -> any ())-> method ( ' method ' )
-> will ( $ this -> onConsecutiveCalls ( ' GET ' , ' POST ' , ' DELETE ' ));
Sie könnten den Code oben wie folgt schreiben:
$ mock = $ this -> getDouble (
CI_Input::class,
[
[ ' method ' => [ ' GET ' , ' POST ' , ' DELETE ' ]],
]
);
$this->verifyInvoked()
param | Typ | Beschreibung |
---|---|---|
$mock | Objekt | PHPUnit-Mock-Objekt |
$method | Zeichenfolge | Methodenname |
$params | Array | Argumente |
Überprüft, ob eine Methode mindestens einmal aufgerufen wurde.
$ loader -> expects ( $ this -> atLeastOnce ())
-> method ( ' view ' )
-> with (
' shopConfirm ' , $ this -> anything (), true
);
Sie könnten den Code oben wie folgt schreiben:
$ this -> verifyInvoked (
$ loader ,
' view ' ,
[
' shopConfirm ' , $ this -> anything (), true
]
);
$this->verifyInvokedOnce()
param | Typ | Beschreibung |
---|---|---|
$mock | Objekt | PHPUnit-Mock-Objekt |
$method | Zeichenfolge | Methodenname |
$params | Array | Argumente |
Überprüft, ob die Methode nur einmal aufgerufen wurde.
$ loader -> expects ( $ this -> once ())
-> method ( ' view ' )
-> with (
' shopConfirm ' , $ this -> anything (), true
);
Sie könnten den Code oben wie folgt schreiben:
$ this -> verifyInvokedOnce (
$ loader ,
' view ' ,
[
' shopConfirm ' , $ this -> anything (), true
]
);
$this->verifyInvokedMultipleTimes()
param | Typ | Beschreibung |
---|---|---|
$mock | Objekt | PHPUnit-Mock-Objekt |
$method | Zeichenfolge | Methodenname |
$times | int | mal |
$params | Array | Argumente |
Überprüft, ob die Methode genau $times aufgerufen wurde.
$ loader -> expects ( $ this -> exactly ( 2 ))
-> method ( ' view ' )
-> withConsecutive (
[ ' shopConfirm ' , $ this -> anything (), true ],
[ ' shopTmplCheckout ' , $ this -> anything ()]
);
Sie könnten den Code oben wie folgt schreiben:
$ this -> verifyInvokedMultipleTimes (
$ loader ,
' view ' ,
2 ,
[
[ ' shopConfirm ' , $ this -> anything (), true ],
[ ' shopTmplCheckout ' , $ this -> anything ()]
]
);
$this->verifyNeverInvoked()
param | Typ | Beschreibung |
---|---|---|
$mock | Objekt | PHPUnit-Mock-Objekt |
$method | Zeichenfolge | Methodenname |
$params | Array | Argumente |
Überprüft, ob die Methode nicht aufgerufen wurde.
$ loader -> expects ( $ this -> never ())
-> method ( ' view ' )
-> with (
' shopConfirm ' , $ this -> anything (), true
);
Sie könnten den Code oben wie folgt schreiben:
$ this -> verifyNeverInvoked (
$ loader ,
' view ' ,
[
' shopConfirm ' , $ this -> anything (), true
]
);
ReflectionHelper
Dieses Merkmal stellt Hilfsmethoden für den Zugriff auf private oder geschützte Eigenschaften und Methoden bereit.
Im Allgemeinen wird jedoch nicht empfohlen, nicht öffentliche Eigenschaften oder Methoden zu testen. Denken Sie also zweimal darüber nach, bevor Sie die Methoden in diesem Merkmal verwenden.
Importieren Sie das Merkmal KenjisPhpUnitHelperReflectionHelper
in Ihre Testklasse:
<?php
declare (strict_types= 1 );
namespace Foo Bar Test Unit ;
use Kenjis PhpUnitHelper ReflectionHelper ;
use PHPUnit Framework ;
final class BazTest extends Framework TestCase
{
use ReflectionHelper;
}
$this->getPrivateProperty()
param | Typ | Beschreibung |
---|---|---|
$obj | Objekt/Zeichenfolge | Objekt-/Klassenname |
$property | Zeichenfolge | Eigenschaftsname |
returns
.
Ruft den privaten oder geschützten Eigenschaftswert ab.
$ obj = new SomeClass ();
$ private_propery = $ this -> getPrivateProperty (
$ obj ,
' privatePropery '
);
$this->setPrivateProperty()
param | Typ | Beschreibung |
---|---|---|
$obj | Objekt/Zeichenfolge | Objekt-/Klassenname |
$property | Zeichenfolge | Eigenschaftsname |
$value | gemischt | Wert |
Legt den privaten oder geschützten Eigenschaftswert fest.
$ obj = new SomeClass ();
$ this -> setPrivateProperty (
$ obj ,
' privatePropery ' ,
' new value '
);
$this->getPrivateMethodInvoker()
param | Typ | Beschreibung |
---|---|---|
$obj | Objekt/Zeichenfolge | Objekt-/Klassenname |
$method | Zeichenfolge | Methodenname |
Gibt den (Abschluss-)Methodenaufrufer returns
.
Ruft den privaten oder geschützten Methodenaufrufer ab.
$ obj = new SomeClass ();
$ method = $ this -> getPrivateMethodInvoker (
$ obj , ' privateMethod '
);
$ this -> assertEquals (
' return value of the privateMethod() method ' , $ method ()
);
DebugHelper
Dieses Merkmal stellt die Hilfsfunktionen dd()
und d()
zum Dumpen von Variablen bereit.
Importieren Sie das Merkmal KenjisPhpUnitHelperDebugHelper
in Ihre Testklasse:
<?php
declare (strict_types= 1 );
namespace Foo Bar Test Unit ;
use Kenjis PhpUnitHelper DebugHelper ;
use PHPUnit Framework ;
final class BazTest extends Framework TestCase
{
use DebugHelper;
}
Dieses Paket ist unter der MIT-Lizenz lizenziert.
Bitte werfen Sie einen Blick auf LICENSE
.