Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, sources, etc. pour PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/09/2012, 15h20   #1
Benjamin Delespierre
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 904
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 904
Points : 8 642
Points : 8 642
Par défaut Phoebe, un framework qui vous fera aimer les tests

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:
Code :
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');
 
        });
 
    });
});
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.

Vous en pensez quoi ?
__________________
On vous a menti
PHP, Injection de dépendances et composants
La POO en PHP en 10 minutes pour moins
Suivez-moi sur GitHub et Twitter

N'oubliez pas de vous servir des bouttons , et
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 13/09/2012, 16h10   #2
grunk
Modérateur
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 2 520
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 28
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 2 520
Points : 5 262
Points : 5 262
Je viens de tester et pour l'instant j'avoue que c'est plutôt sympa. Pas de classe à écrire ni des dizaines de fichier à inclure , c'est plutôt agréable.

Je garde un oeil dessus defois qu'un jour je trouve le temps d'écrire des test

Phoebe est il testé avec Phoebe ?

Sinon quelques erreurs dans le readme sur github et du coup sur ton exemple :

Code :
1
2
3
// we are testing a method return
expect(Foo:bar('hello'))->toBe('boolean');
expect(Foo:bar('hello'))->toBeTrue();
Devrais être
Code :
1
2
3
// we are testing a method return
expect(Foo::bar('hello'))->toBe('boolean'); // :: et non :
expect(Foo::bar('hello'))->toBeTrue();// idem
__________________
Pry Framework php5 | Recherche CDI dev. Web sur Dijon et alentours.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2012, 16h15   #3
Benjamin Delespierre
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 904
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 904
Points : 8 642
Points : 8 642
Houlà, je vais corriger ça tout de suite !

Et non Phoebe ne peut pas être testé avec Phoebe, je vais probablement passer par PHPUnit.

Si tu t'en sers, tu verra que ce qui manque cruellement ce sont les mockups, j'espère arriver à en fournir rapidement. Au passage, les pull request sont les bienvenus
__________________
On vous a menti
PHP, Injection de dépendances et composants
La POO en PHP en 10 minutes pour moins
Suivez-moi sur GitHub et Twitter

N'oubliez pas de vous servir des bouttons , et
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2012, 16h20   #4
grunk
Modérateur
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 2 520
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 28
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 2 520
Points : 5 262
Points : 5 262
Citation:
Envoyé par Benjamin Delespierre Voir le message
Si tu t'en sers, tu verra que ce qui manque cruellement ce sont les mockups, j'espère arriver à en fournir rapidement. Au passage, les pull request sont les bienvenus
En fait c'est toujours que qui m'a gonflé dans les tests. A chaque fois que je prend le temps d'essayer d'écrire des tests et que j'arrive au moment de faire un mock (et puis bon je découple pas toujours comme je devrais mon code) , ça me gonfle et j'ai pas envie de prendre le temps de comprendre la chose et du coup je remet ça à plus tard
__________________
Pry Framework php5 | Recherche CDI dev. Web sur Dijon et alentours.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2012, 10h01   #5
MaitrePylos
Responsable Livres

 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 616
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 40
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 616
Points : 8 907
Points : 8 907
Citation:
Envoyé par Benjamin Delespierre Voir le message
Et non Phoebe ne peut pas être testé avec Phoebe, je vais probablement passer par PHPUnit.
Pourquoi pas Atoum ?
MaitrePylos est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2012, 10h40   #6
Benjamin Delespierre
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 904
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 904
Points : 8 642
Points : 8 642
Je connais pas encore assez bien Atoum.
__________________
On vous a menti
PHP, Injection de dépendances et composants
La POO en PHP en 10 minutes pour moins
Suivez-moi sur GitHub et Twitter

N'oubliez pas de vous servir des bouttons , et
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2012, 10h57   #7
MaitrePylos
Responsable Livres

 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 616
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 40
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 616
Points : 8 907
Points : 8 907
Citation:
Envoyé par Benjamin Delespierre Voir le message
Je connais pas encore assez bien Atoum.
C'est le moment
MaitrePylos est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2012, 12h12   #8
Benjamin Delespierre
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 904
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 904
Points : 8 642
Points : 8 642
Je vais m'en servir pour tester Cobalt, mon nouveau projet. Je pense que ces deux là iront bien ensemble
__________________
On vous a menti
PHP, Injection de dépendances et composants
La POO en PHP en 10 minutes pour moins
Suivez-moi sur GitHub et Twitter

N'oubliez pas de vous servir des bouttons , et
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h27.


 
 
 
 
Partenaires

Hébergement Web