تسمح لك هذه الحزمة بإنشاء اختبارات PHPUnit من التعليقات التوضيحية، والتي يمكنك كتابتها في وثائق الطرق الخاصة بك.
الطريقة المفضلة لتثبيت هذا الامتداد هي من خلال الملحن.
إما تشغيل
composer require hyperia/codecept-unittest-generator: " ^1.0 "
أو إضافة
"hyperia/codecept-unittest-generator": "^1.0"
إلى القسم المطلوب في ملف Composer.json الخاص بك.
تمكين ملحق UnitGenerator
في ملف التكوين الأساسي /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...>})
*/
يستخدم هذا التعليق التوضيحي بعض المعلمات:
phpunit_assertion_method : إنها طريقة التأكيد الخاصة بـ PHPUnit التي تريد استخدامها (مثل AcceptEquals ، وassertInstanceOf ، وassertTrue ...).
التوقع : تقوم الطريقة بإرجاع القيمة المتوقعة. بعض أساليب PHPUnit لا تحتاج إليه (مثل AcceptTrue )، لذلك في هذه الحالات، يمكن أن يكون فارغًا.
المعلمات : معلمات الطريقة.
انظر إلى هذا المثال، نريد إجراء اختبار بسيط لهذه الطريقة تلقائيًا:
<?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 على خيار "تلقائي": إذا قمت بتنشيطه، فسوف يبحث عن الخاصية عندما يجد طريقة تبدأ بـ "get" أو "set"، وإذا كانت الخاصية موجودة، فسيقوم بإنشاء اختبارات.
إذا كانت طريقة الاختبار خاصة أو محمية، فسيقوم PHPUnit Generator بالوصول إلى الطريقة باستخدام PHP ReflectionClass.
يحتاج UnitGenerator إلى المكونات التالية لتشغيله: