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

BDD mit Behat in Drupal8

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

BDD mit Behat in Drupal8

Avatar for Robert Smolarczyk

Robert Smolarczyk

April 13, 2017
Tweet

Other Decks in Programming

Transcript

  1. • Behavior Driven Development • 2006 Dan North’s Antwort auf

    TDD • Outside-In Softwareentwicklung • Ziel: „business value“ Maximierung 7 BDD „It describes a cycle of interactions with well-definded outputs, resulting in the delivery of working, testes software that matters.“ Dan North
  2. • developer • scenarios werden zu featuren • Zyklus ähnlich

    TDD • Tests rot • Test grün • Refactoring 10 Schritt 3
  3. • tester • nutzt Szenarios für testing • Failure •

    gehen an d. developer • entstehen neue Szenarios 11 Schritt 4
  4. • alle Beteiligten • wachsende Dokumentation • durch die automatisierten

    Test wird der Fortschritt symbolisiert 12 Schritt 5
  5. • Einbeziehung von Stakeholdern (Outside-In) • Definition gemeinsamer Sprache •

    fokussierte Erfüllung von Anforderungen • wachsende Dokumentation & Tests 14 Zusammenfassung BDD
  6. • Klartext Sprache • Benefit • automatisierte Tests • dokumentierte

    Software • Schlüsselwörter (Given, When, Then, And ..) 15 Gherkin
  7. Feature: Hier wird das feature beschrieben 16 Gherkin Scenario: Der

    Titel eines möglichen Szenarios Given die ausgehende Bedingung(en) When die ausgeführte Aktion(en) Then die erwatete Reaktion(en) And Verküpfung von mehreren Zuständen
  8. Feature: Die Authentifizierung in der Applikation 17 Gherkin Beispiel Scenario:

    Login ohne gültige Zugangsdaten Given I am on „/user/login“ When I fill in „name“ with „none-existing-user“ Then I should see „Unknown username…“ And I fill in „pass“ with „password“
  9. • PHP Framework (Konstantin Kudryashov) • „helps you to build

    the right system…“ • „extendable to the core“ • basierend auf „cucumber“ • Context • Step Definitionen, Hooks 18 Behat
  10. • Mink • Diverse Treiber für Browser Emulation/Kontrolle • vordefinierte

    Steps (ca. > 120) • Session Kontrolle (Navigation, Cookie, HTTP etc.) • Seiten Kontrolle (Css, Xpath etc.) 19 Behat Extension
  11. • Jonathan Hedstorm • drupal-spezifische Funktionen: • User • Nodes

    • Taxonomien • drush- und drupal api-Driver • Schicht zwischen Mink & Behat 20 Behat Drupal Extension
  12. Wie installiere ich das in meinem Projekt? 1.Installation: • Modul

    installieren: drupalextension • Composer: composer require-dev „drupal/drupal-extension:^3.2" 2.Konfiguration: • behat.yml 3.Ausführen: • vendor/bin/behat -dl 21 Installation
  13. 22 Beispiel Beispiel Scenario: Feature: ??? Scenario: ~ Given I

    am logged in as a user with the „authenticated user" role Then I should see the text „Member for“ When I click on „My account“
  14. 23 Beispiel Beispiel Scenario: Scenario: ??? Given users: Then I

    should see the text „Administrator“ in the „Joe User“ row When I visit on „admin/people“ | name | mail | roles | | Jane User | [email protected] | | | Joe User | [email protected] | Administrator | And I am logged in as a user with the „Administrator“ role And I should not see the text „Administrator“ in the „Jane User“ row
  15. • Behat: http://behat.org/en/latest/ • Dan North Introducing BDD: https://dannorth.net/introducing-bdd/ •

    Drupal Extension: https://www.drupal.org/project/drupalextension • The beginners guide to BDD: https://inviqa.com/blog/bdd-guide • Gherkin: https://github.com/cucumber/cucumber/wiki/Gherkin 26 Quellen