Mit diesem Paket können Sie PHPUnit-Tests aus Annotationen generieren, die Sie in Ihre Methodendokumentation schreiben können.
Die bevorzugte Methode zur Installation dieser Erweiterung ist Composer.
Entweder laufen
composer require hyperia/codecept-unittest-generator: " ^1.0 "
oder hinzufügen
"hyperia/codecept-unittest-generator": "^1.0"
zum erforderlichen Abschnitt Ihrer Composer.json.
Aktivieren Sie UnitGenerator
Erweiterung in der Basiskonfigurationsdatei /codeception.yml
:
extensions :
enabled :
- CodeceptionExtensionRunFailed
commands :
- CodeceptionCommandUnitGenerator
unitgenerator :
config :
# erase old target files with new one
overwrite : true
# if you want to generate tests for Interface too
interface : false
# automaticaly generate tests for getter / setter method
auto : true
# ignore errors that can be ignored
ignore : true
# regex (/.*config.php/ for example) that files must not match to have a tests generation
exclude : ' /.*Trait.*/ '
# regex (/.*.php/ for example) that files should match to have a tests generation
include : ' /.*.php/ '
dirs :
# source directory => target directory
- common/models : tests/unit/unitgen/common/models/
- console/models : tests/unit/unitgen/console/models/
./vendor/bin/codecept generate:unit
/**
* @PHPUnitGen<phpunit_assertion_method>(<expectation>:{<parameters...>})
*/
Diese Anmerkung verwendet einige Parameter:
phpunit_assertion_method : Es handelt sich um die PHPUnit-Assertionsmethode, die Sie verwenden möchten (z. B. „assertEquals“ , „asserInstanceOf“ , „asserTrue ...“).
Erwartung : Die Methode gibt den erwarteten Wert zurück. Einige PHPUnit-Methoden benötigen es nicht (wie „sertTrue“ ), daher kann es in diesen Fällen null sein.
Parameter : Die Methodenparameter.
Sehen Sie sich dieses Beispiel an. Wir möchten automatisch einen einfachen Test für diese Methode generieren:
<?php
// The class to test content
/** @PHPUnitGenAssertEquals('expected string':{1, 2, 'a string'}) */
/** @PHPUnitGenAssertTrue(:{4, 5, 'another'}) */
/** @PHPUnitGenAssertEquals(null) */
/** @PHPUnitGenAssertNull() */
public function method ( int $ arg1 = 0 , int $ arg2 = 0 , string $ arg3 = ' default ' ) {}
Diese Anmerkungen erstellen grundlegende PHPUnit-Tests:
<?php
// The generated test for "method" in tests class
$ this -> assertEquals ( ' expectation string ' , $ this -> method ( 1 , 2 , ' a string ' ));
$ this -> assertTrue ( $ this -> method ( 4 , 5 , ' another ' ));
$ this -> AssertEquals ( null , $ this -> method ());
$ this -> assertNull ( $ this -> method ());
<?php
// The class to test content
/** @PHPUnitGenGet() */
/** @PHPUnitGenSet() */
Mit diesen beiden Anmerkungen können Sie Tests für einfache Getter/Setter automatisch generieren. Ihr Getter/Setter muss wie folgt benannt werden:
get<MyProperty>() {}
set<MyProperty>() {}
Der PHPUnit-Generator verfügt über eine „Auto“-Option: Wenn Sie sie aktivieren, sucht er nach der Eigenschaft, wenn er eine Methode findet, die mit „get“ oder „set“ beginnt, und wenn die Eigenschaft vorhanden ist, werden Tests generiert.
Wenn die zu testende Methode privat oder geschützt ist, greift PHPUnit Generator mit PHP ReflectionClass auf die Methode zu.
UnitGenerator benötigt zum Ausführen die folgenden Komponenten: