2015-06-26 14 views
6

Hintergrund:Szenario vs. Szenario Gliederung

Ich bin derzeit Behat Tests (Mink/Selen) für eine Symfony2 Webseite zu schreiben. Ich habe eine Menge Beispiele dafür, und eigentlich sollte das Schreiben kein Problem sein. Die Schrittdefinitionen sind bereits geschrieben.

jedoch in den Beispielen sie einige Male definieren ein Scenario: und einige Male eine Scenario Outline:

Frage:

Was ist der Unterschied zwischen diesen beiden Formen des Test zu definieren?

+0

Haben Sie überhaupt versucht, die Behat-Dokumentation zu lesen, bevor Sie gefragt werden? http://docs.behat.org/de/v3.0/guides/1.gherkin.html#scenarios –

Antwort

10

Von the official guide:

Kopieren und Einfügen von Szenarien können verschiedene Werte verwenden, um schnell langweilig werden und sich wiederholende:

Scenario: Eat 5 out of 12 
    Given there are 12 cucumbers 
    When I eat 5 cucumbers 
    Then I should have 7 cucumbers 

Scenario: Eat 5 out of 20 
    Given there are 20 cucumbers 
    When I eat 5 cucumbers 
    Then I should have 15 cucumbers 

Szenario uns Outlines erlauben prägnanter auf diese Beispiele ausdrücken durch die Verwendung einer Vorlage mit Platzhaltern

Scenario Outline: Eating 
    Given there are <start> cucumbers 
    When I eat <eat> cucumbers 
    Then I should have <left> cucumbers 

    Examples: 
    | start | eat | left | 
    | 12 | 5 | 7 | 
    | 20 | 5 | 15 | 

Die Scenario Outline-Schritte bieten eine Vorlage, die niemals direkt ausgeführt wird. Eine Szenario-Gliederung wird einmal für jede Zeile im Abschnitt "Beispiele" darunter ausgeführt (mit Ausnahme der ersten Kopfzeile).

Mehr in der Writing Features Anleitung.

+0

Muss ich das einfache 'Szenario 'haben, wenn ich' Scenario Outlet' habe? – Salman

+0

@Salman Nr. 'Szenario Outline' ist einfach ein Szenario mit einer Reihe von Beispielen. Wann immer Sie den Abschnitt 'Beispiele' verwenden müssen, müssen Sie die' Szenario-Gliederung' anstelle eines 'Szenarios' verwenden. Der Unterschied besteht darin, dass ein "Szenario" einmal ausgeführt wird, während "Szenario-Gliederung" für jedes Beispiel aus der Tabelle ausgeführt wird. –

0

Intellij IDEA + Gurke Unterstützen Sie dies, aber ich weiß nicht, ob dies Standard für alle ist.

Feature: LoginFeature 
    This feature deals the login functionality of the application 

Scenario: Login with correct username and password 
    Given I navigate to the login page 
    And I enter the following for Login 
    | username | password  | 
    | admin | adminpassword | 
    | admin2 | adminpassword2 | 
    | admin3 | adminpassword3 | 
    | admin4 | adminpassword4 | 
    | admin5 | adminpassword5 | 
    And I click login button 
    Then I should see the userform page 
+0

Diese Methode führt keine separaten Tests aus, daher muss Scenario Outline verwendet werden – XsrPm