Kahlan est un framework de tests unitaires et BDD complet à la RSpec/JSpec qui utilise une syntaxe describe-it
et fait avancer les tests en PHP.
Kahlan vous permet de modifier ou de corriger votre code directement comme dans Ruby ou JavaScript sans aucune extension PECL requise.
Présentation de Warren Seymour à Unified Diff (2015)
Présentation Grafikart en français (2016, Kahlan 2.X)
chat.freenode.net (serveur) #kahlan (canal)
Voir la documentation complète ici
PHP7.2+
Compositeur
phpdbg ou Xdebug (requis uniquement pour l'analyse de la couverture du code)
Syntaxe RSpec/JSpec
Métriques de couverture de code (xdebug ou phpdbg requis)
Système de stubbing pratique (les moqueries ou les prophéties ne sont plus nécessaires)
Définissez directement des stubs sur vos méthodes de classe (c'est-à-dire permet une moquerie dynamique)
Possibilité de Monkey Patch votre code (c'est-à-dire permet le remplacement des fonctions/classes principales à la volée)
Vérifiez les méthodes appelées sur vos classes/instances
Reporteurs intégrés (rapports via terminal ou HTML via Istanbul ou Lcov)
Exportateurs intégrés (combinaisons, code climatique, scrutiniseur, trèfle)
Flux de travail extensible et personnalisable
<?phpdescribe("Exemple", function() { it("fait une attente", function() { expect(true)->toBe(true); }); it("attend que les méthodes soient appelées", function() { $user = new User(); expect($user)->toReceive('save')->with(['validates' => false]); $ utilisateur->save(['validates' => false]); }); it("stubs a function", function() {allow('time')->toBeCalled()->andReturn(123); $user = new User(); expect($user->save())-> être(vrai) attendre($utilisateur->créé)->être(123); }); it("stubs a class", function() {allow('PDO')->toReceive('prepare', 'fetchAll')->andReturn([['name' => 'bob']]); $user = new User(); expect($user->all())->toBe([['name' => 'bob']]); }); });
$ composer require --dev kahlan/kahlan
Remarque : Kahlan utilise le versioning sémantique et maintient un CHANGELOG
pour vous aider à comprendre facilement ce qui se passe.
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)