IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez / Téléchargez Sources et Outils PHP Discussion :

Phoebe, un framework qui vous fera aimer les tests


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #1
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    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 929
    Points : 7 762
    Points
    7 762
    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 : 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');
     
            });
     
        });
    });
    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 ?

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 221
    Points
    20 221
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // we are testing a method return
    expect(Foo:bar('hello'))->toBe('boolean');
    expect(Foo:bar('hello'))->toBeTrue();
    Devrais être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    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 929
    Points : 7 762
    Points
    7 762
    Par défaut
    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

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 221
    Points
    20 221
    Par défaut
    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 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    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 ?

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    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 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Je connais pas encore assez bien Atoum.

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Je connais pas encore assez bien Atoum.
    C'est le moment

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    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 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Je vais m'en servir pour tester Cobalt, mon nouveau projet. Je pense que ces deux là iront bien ensemble

Discussions similaires

  1. [top liste] Les livres qui vous ont marqué
    Par Le Pharaon dans le forum Lectures
    Réponses: 372
    Dernier message: 09/02/2024, 20h04
  2. Etes-vous un "Informaniac" ? Les 27 signes qui doivent vous alerter
    Par Katleen Erna dans le forum Humour Informatique
    Réponses: 139
    Dernier message: 08/10/2018, 10h54
  3. Réponses: 142
    Dernier message: 02/04/2010, 19h50
  4. Etes-vous un "Informaniac" ? Les 27 signes qui doivent vous alerter
    Par Katleen Erna dans le forum Actualités
    Réponses: 119
    Dernier message: 28/08/2009, 13h46
  5. Que penseriez vous de mutualiser les tests browser ?
    Par SpaceFrog dans le forum Général Conception Web
    Réponses: 18
    Dernier message: 06/04/2009, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo