Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Les tests de validation pour PHP

hellosct1
February 28, 2024

Les tests de validation pour PHP

Présentation effectuée au Meetup de l'antenne AFUP Paris 2024 par Christophe Villeneuve sur "Les tests de validation pour PHP".
Cette session a pour but de montrer réaliser des tests d'intégration avec le navigateur Firefox et l'extension Multicontainers (onglets contextuelles)

hellosct1

February 28, 2024
Tweet

More Decks by hellosct1

Other Decks in Technology

Transcript

  1. Atos open source - afup – lemug.fr – mariadb –

    drupal – mozilla - firefox – lemugfr - sumo – webextensions – VR – AR – XR - Cause commune 93.1 FM - TechSpeaker - Lizard - eyrolles – editions eni – programmez – linux pratique – webriver – elephpant - CommonVoice – Sécurité - Cybersécurité Christophe Villeneuve • Consultant Open Source • Dresseur animaux
  2. @hellosct1 – Meetup AFUP • Les tests… Je connais •

    Des tests sans connaissance • Démo
  3. @hellosct1 – Meetup AFUP Différents tests • Test unitaire •

    Test fonctionnel • Test intégration • Test Qualité • Test de performance • Test sécurité • Test accessibilite
  4. @hellosct1 – Meetup AFUP Intérêts de tests fonctionnels • Connaître

    le fonctionnement d’une application • Paramétrer les routes • Configurer les rôles & profils • Facilite la rédaction de la documentation • Facilite les tests automatisés
  5. @hellosct1 – Meetup AFUP Mettre en place des tests fonctionnels

    • Créer un client HTTP • Émettre une requête HTTP – à l'aide du client HTTP sur une page • que vous souhaitez tester • Récupérer la réponse HTTP • Tester si le contenu attendu est bien présent
  6. @hellosct1 – Meetup AFUP Classe de tests (1/3) <?php namespace

    App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class DiaryControllerTest extends WebTestCase { public function testHomepageIsUp() { $client = static::createClient(); } }
  7. @hellosct1 – Meetup AFUP Classe de tests (2/3) • Envoyer

    une variable de classe – Utilisation du client via WebTestCase <?php // ... use Symfony\Component\HTTPFoundation\Response; class DiaryControllerTest extends WebTestCase { private KernelBrowser|null $client = null; public function setUp() : void { $this->client = static::createClient(); } public function testHomepageIsUp() { $urlGenerator = $this->client->getContainer()->get('router.default'); $this->client->request(Request::METHOD_GET, $urlGenerator->generate('homepage')); } }
  8. @hellosct1 – Meetup AFUP Classe de tests (3/3) $ vendor/bin/phpunit

    --filter=testHomepageIsUp > public/resultTest.html
  9. @hellosct1 – Meetup AFUP • Les tests… Je connais •

    Des tests sans connaissance • Démo
  10. @hellosct1 – Meetup AFUP Firefox • Navigateur web libre et

    gratuit • Développé et distribué par la fondation Mozilla → Avec l'aide de milliers de contributeurs • Un cycle de version : 4 à 5 semaines • La version utilisée par la majorité des internautes
  11. @hellosct1 – Meetup AFUP C'est quoi... • Disponible : https://nightly.mozfr.org/

    • Compiler tous les jours • Découvrir et tester → les prochaines fonctionnalités en avant première https://whattrainisitnow.com/calendar/
  12. @hellosct1 – Meetup AFUP Et bénéficier... • Le reporting des

    crashes et la télémétrie → Activé par défaut • De nombreuses fonctionnalités expérimentales → sont activées • Compatible – Windows – Linux – Mac
  13. @hellosct1 – Meetup AFUP Fonctionnalité : Les onglets contextuels •

    Ceux sont des contenaires • Activé par le menu : Personnaliser • Créer différents contextes pour chacune de vos vies numériques – votre vie professionnelle – votre vie sociale – votre vie personnelle • But – Rester organisée – Protéger votre vie privée
  14. @hellosct1 – Meetup AFUP Hacker Firefox Nightly • Pas de

    modification réel • Utilisation différente de l'origine • Hacker pour une utilisation métier Hacker pour une utilisation Métier Avec PHP
  15. @hellosct1 – Meetup AFUP Les rôles dans PHP / CMS

    / Framework • Un projet Métier en PHP • C'est : – La création d'un ou plusieurs rôles, voir +++ – Avec des profils différents Comment tester tous les cas ? Solution supplémentaire : Solution : - Intégration continue - BDD / DDD - ...
  16. @hellosct1 – Meetup AFUP Nous ne verrons pas… aujourd'hui •

    Le mode avancé • L'utilisation des déclencheurs (trigger) • La conception de bloc par profils • Etc…
  17. @hellosct1 – Meetup AFUP • Les tests… Je connais •

    Des tests sans connaissance • Démo
  18. @hellosct1 – Meetup AFUP En résumé • Terminé les multi

    navigateurs →Dans les cycles de tests • D'aider – Les développeurs Back / Front – Les Chefs de projets MOA / MOE • La possibilité d'associée cette fonctionnalité → Dans tous vos projets