Kahlan عبارة عن إطار عمل اختبار Unit & BDD كامل الميزات على غرار RSpec/JSpec والذي يستخدم بناء جملة describe-it
وينقل الاختبار في PHP خطوة واحدة إلى الأمام.
يتيح لك Kahlan تصحيح التعليمات البرمجية الخاصة بك أو تصحيحها مباشرة كما هو الحال في Ruby أو JavaScript دون أي ملحقات PECL مطلوبة.
عرض وارن سيمور في Unified Diff (2015)
عرض Grafikart باللغة الفرنسية (2016، Kahlan 2.X)
chat.freenode.net (الخادم) #kahlan (قناة)
انظر الوثائق الكاملة هنا
PHP 7.2+
الملحن
phpdbg أو Xdebug (مطلوب فقط لتحليل تغطية التعليمات البرمجية)
بناء جملة RSpec/JSpec
مقاييس تغطية التعليمات البرمجية (مطلوب xdebug أو phpdbg)
نظام كعب مفيد (لم تعد هناك حاجة للسخرية أو النبوءة)
قم بتعيين بذرة على أساليب صفك مباشرة (أي تسمح بالسخرية الديناميكية)
القدرة على تصحيح الكود الخاص بك (أي السماح باستبدال الوظائف/الفئات الأساسية بسرعة)
تحقق من الأساليب التي يتم استدعاؤها في الفصول/المثيلات الخاصة بك
مراسلون مدمجون (تقارير المحطة الطرفية أو HTML عبر اسطنبول أو lcov)
المصدرون المدمجون (المآزر، كود المناخ، Scrutinizer، Clover)
سير عمل قابل للتوسيع والتخصيص
<?phpdescribe("Example", function() { it("يصنع توقعًا", function() { توقع(صحيح)->toBe(true); }); it("يتوقع استدعاء الأساليب"، function() { $user = new User();توقع($user)->toReceive('save')->with(['validates' => false]); $ user->save(['validates' => false]); }); it("بذرة وظيفة"، function() {allow('time')->toBeCalled()->andReturn(123); $user = new User(); توقع($user->save())-> toBe(صحيح) توقع($user->تم الإنشاء)->toBe(123); }); it("بذرة فئة"، function() {allow('PDO')->toReceive('prepare', 'fetchAll')->andReturn([['name' => 'bob']]); $user = مستخدم جديد(); توقع($user->all())->toBe([['name' => 'bob']]); }); });
$ الملحن يتطلب --dev kahlan/kahlan
ملحوظة: يستخدم Kahlan الإصدار الدلالي ويحتفظ CHANGELOG
لمساعدتك على فهم ما يحدث بسهولة.
git clone git://github.com/kahlan/kahlan.git cd kahlan composer install bin/kahlan # to run specs or, bin/kahlan --coverage=4 # to run specs with coverage info for namespaces, classes & methods (require xdebug)