2015-06-26 16 views
6

Background:Scenario Scenario vs. Outline

Attualmente sto scrivendo test Behat (Mink/selenio) per una pagina web Symfony2. Ho una buona dose di esempi da seguire, e in realtà scriverli non dovrebbe essere un problema. Le definizioni del passo sono già state scritte.

Tuttavia, negli esempi, che a volte definire un Scenario: e alcune volte un Scenario Outline:

Domanda:

Qual è la differenza tra questi due modi di definire un test?

+0

Hai provato a leggere la documentazione di Behat prima di chiedere? http://docs.behat.org/en/v3.0/guides/1.gherkin.html#scenarios –

risposta

10

Da the official guide:

scenari di copia e incolla per utilizzare valori diversi possono rapidamente diventare noioso e ripetitivo:

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 

scenario delinea ci permettono di esprimere in modo più conciso questi esempi attraverso l'uso di un modello con segnaposti

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 | 

I passaggi Scenario forniscono un modello che non viene mai eseguito direttamente. Un contorno scenario viene eseguito una volta per ogni riga nella sezione degli esempi al di sotto di essa (ad eccezione della prima riga di intestazione).

Altro nella guida Writing Features.

+0

Devo avere il semplice 'Scenario' quando ho' Scenario Outlet'? – Salman

+0

@ Salman no. 'Scenario Outline' è semplicemente uno scenario con una serie di esempi. Ogni volta che devi usare la sezione 'Esempi', devi usare la' Scenario Outline' invece di uno 'Scenario'. La differenza è che uno 'Scenario' sarà eseguito una volta mentre' Scenario Outline' viene eseguito per ogni esempio dalla tabella. –

0

Intellij IDEA + Cetriolo Supporta questo, ma non so se questo è standard per tutti.

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

Questo metodo non esegue test separati, per questo motivo deve essere utilizzato Scenario Outline – XsrPm