Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Expert Confirmé Sénior
    Avatar de Benjamin Delespierre
    Profil pro Benjamin Delespierre
    Développeur Web
    Inscrit en
    février 2010
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Nom : Benjamin Delespierre
    Âge : 27
    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 931
    Points : 8 401
    Points
    8 401

    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 ?

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro Olivier
    Dév. Web / Android
    Inscrit en
    août 2003
    Messages
    3 110
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier
    Âge : 30
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Dév. Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 3 110
    Points : 7 462
    Points
    7 462

    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 :
    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

  3. #3
    Expert Confirmé Sénior
    Avatar de Benjamin Delespierre
    Profil pro Benjamin Delespierre
    Développeur Web
    Inscrit en
    février 2010
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Nom : Benjamin Delespierre
    Âge : 27
    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 931
    Points : 8 401
    Points
    8 401

    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 Olivier
    Dév. Web / Android
    Inscrit en
    août 2003
    Messages
    3 110
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier
    Âge : 30
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Dév. Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 3 110
    Points : 7 462
    Points
    7 462

    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

  5. #5
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro Gérard Ernaelsten
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Nom : Homme Gérard Ernaelsten
    Âge : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : juin 2005
    Messages : 3 840
    Points : 8 779
    Points
    8 779

    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 Confirmé Sénior
    Avatar de Benjamin Delespierre
    Profil pro Benjamin Delespierre
    Développeur Web
    Inscrit en
    février 2010
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Nom : Benjamin Delespierre
    Âge : 27
    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 931
    Points : 8 401
    Points
    8 401

    Par défaut

    Je connais pas encore assez bien Atoum.

  7. #7
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro Gérard Ernaelsten
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Nom : Homme Gérard Ernaelsten
    Âge : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : juin 2005
    Messages : 3 840
    Points : 8 779
    Points
    8 779

    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 Confirmé Sénior
    Avatar de Benjamin Delespierre
    Profil pro Benjamin Delespierre
    Développeur Web
    Inscrit en
    février 2010
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Nom : Benjamin Delespierre
    Âge : 27
    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 931
    Points : 8 401
    Points
    8 401

    Par défaut

    Je vais m'en servir pour tester Cobalt, mon nouveau projet. Je pense que ces deux là iront bien ensemble

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •