Bonjour à tous,
Je suis aujourd'hui heureux et fier de vous présenter mon nouveau projet: Phoebe.
Phoebe est un framework de développement axé sur le comportement (Behavior Driven Development ou BDD en anglais). Il sert à la réalisation de scénarii de test et s'oppose aux frameworks de tests classiques comme PHPUnit ou SimpleTest par son approche procédurale qui vous permet de décrire vos tests sans avoir à surcharger les classes du framework. Tout passe par l'imbrication de fonctions anonymes, rendant la création de tests unitaires à la fois intuitif et divertissant. Sa syntaxe, proche du langage humain, permet une prise en main instantanée.
Cet outil est fortement inspiré de Jasmine, un framework BDD pour JavaScript utilisé notamment par Angular JS de Google. Inspiré pour ne pas dire copié, dans les faits j'ai essayé dans la mesure de mes moyens de porter l'esthétique de Jasmine en PHP.
Notez bien :Phoebe est encore en beta, soyez indulgent et ne vous étonnez pas de rencontrer quelques bugs. Vos rapports sont par ailleurs les bienvenus sur l'outil de ticketing du projet.
Place à la démonstration:
Simple non ? Vous trouverez sur la page du projet tous les éléments pour utiliser le framework, notament pour la mise en place des beforeEAch et afterEach ainsi que la création de matchers personnalisés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php require 'phoebe.php'; require 'Foo.class.php'; describe("the Foo library", function () { describe("the foo::bar method", function () { it('should return a boolean', function () { // we are testing a method return expect(Foo::bar('hello'))->toBe('boolean'); expect(Foo::bar('hello'))->toBeTrue(); }); it('should throw if arguments are invalid', function () { // we are testing a method call expect('Foo::bar')->call(null)->toThrow('InvalidArgumentException'); expect('Foo::bar')->call(false)->toThrow('InvalidArgumentException'); }); }); });
Vous en pensez quoi ?
Partager