codecept unittest generator
Version 1.0.1
該套件允許您從註釋產生 PHPUnit 測試,您可以將其寫入方法文件中。
安裝此擴充功能的首選方法是透過 Composer。
要么運行
composer require hyperia/codecept-unittest-generator: " ^1.0 "
或添加
"hyperia/codecept-unittest-generator": "^1.0"
到你的composer.json的require部分。
在基本/codeception.yml
設定檔中啟用UnitGenerator
擴充:
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...>})
*/
此註解使用一些參數:
phpunit_assertion_method :這是您想要使用的 PHPUnit 斷言方法(如assertEquals 、 assertInstanceOf 、 assertTrue ...)。
Expectation :此方法傳回期望值。某些 PHPUnit 方法不需要它(例如assertTrue ),因此在這些情況下,它可以是 null。
參數:方法參數。
看這個例子,我們想為此方法自動產生一些簡單的測試:
<?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 ' ) {}
這些註解將會建立基本的 PHPUnit 測試:
<?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() */
這兩個註解將允許您自動產生簡單 getter / setter 的測試。您的 getter / setter 需要命名如下:
get<MyProperty>() {}
set<MyProperty>() {}
PHPUnit Generator 有一個「auto」選項:如果啟動它,當它找到以「get」或「set」開頭的方法時,它將搜尋該屬性,如果該屬性存在,它將產生測試。
如果要測試的方法是私有的或受保護的,PHPUnit 產生器將使用 PHP ReflectionClass 存取該方法。
UnitGenerator 需要以下元件才能運作: