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

BDD mit Behat in Drupal8

BDD mit Behat in Drupal8

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