cucumber Une fonctionnalité de concombre


Exemple

Le concombre utilise la syntaxe Gherkin pour décrire les comportements de votre logiciel en langage naturel structuré.

En tant que tel, Cucumber n'est pas un framework de test (un malentendu commun), mais un cadre de documentation système , pas très différent des autres comme le scénario de cas d'utilisation. L'incompréhension commune est due au fait que la documentation de Concombre peut être automatisée afin de s'assurer qu'elle reflète le comportement réel du système .

Une suite de documentation Cucumber est composée de Features , chacune décrivant une fonctionnalité de votre logiciel, écrite en Gherkin et hébergée dans son propre fichier. En organisant ces fichiers dans une structure de répertoires, vous pouvez regrouper et organiser les fonctionnalités:

  • bancaire/
    • retrait.feature
    • atm.feature
    • personal-loan.feature
  • commerce/
    • portfolio.feature
    • intraday.feature
  • hypothèque/
    • évaluation.features
    • caractéristique comptable

Chaque Feature est un fichier texte composé d'une section d'introduction optionnelle, non structurée, purement informative et d'un ou plusieurs Scenarios , chacun représentant une condition d'utilisation ou un cas d'utilisation.

Exemple:

Feature: Documentation
As a StackOverflow user or visitor
I want to access the documentation section
    
    Scenario: search documentation on Stack Overflow
        Given I am on StackOverflow
        And I go to the Documentation section
        When I search for "cucumber"
        And I follow the link to "cucumber"
        Then I should see documentation for "cucumber"

Chaque ligne commençant par Given, Quand, Et, Mais ou est ensuite appelé Step . N'importe quelle étape peut commencer par n'importe lequel de ces mots, peu importe l'ordre, mais il est classique de les utiliser de la manière la plus naturelle possible.

Les fonctionnalités peuvent également être organisées via des Tags , des annotations que l'éditeur peut placer sur une Feature ou un Scenario pour mieux les classer.

Exécutifs une fonction est réalisée par le code de la colle qui peut être écrit dans de nombreuses langues (Java, Ruby, Scala, C / C ++): chaque Step est en correspondance avec le code de la colle afin d'identifier Step Definitions (communément abrégé en StepDef) par expressions régulières.

Chaque Step ne peut avoir qu'une seule Step Definition associée.

Lorsqu'une Feature est exécutée, chaque Scenario composition est exécuté, ce qui signifie que chaque StepDef correspondant aux Step s dans chaque Scenario est exécuté.