2014-03-25 7 views
11

ich eine Feature-Datei, die als unten:Gurke Szenario Umriss und Beispiele mit generischem Schritt Definitionen

Scenario Outline: Create ABC 

    Given I open the application 

    When I enter username as <username> 

    And I enter password as <password> 

    Then I enter title as <title> 

    And press submit 


Examples: 

| username | password | title | 

| Rob  | xyz1  | title1 | 

| Bob  | xyz1  | title2 | 

Diese Mandate mir Schritt Definitionen für jeden dieser Werte zu haben. Kann ich generische Schritt Definition eine

haben stattdessen die

Abschnitt Beispiele in

für jeden Benutzername oder Passwort oder Titelwerte abgebildet werden können.

d.h statt

@When("^I enter username as Rob$") 
public void I_enter_username_as_Rob() throws Throwable { 
    // Express the Regexp above with the code you wish you had 
    throw new PendingException(); 
} 

kann ich

@When("^I enter username as <username>$") 
public void I_enter_username_as_username(<something to use the value passed>) throws Throwable { 
    // Express the Regexp above with the code you wish you had 
    throw new PendingException(); 
} 
+0

wie kann das geschehen? Es muss ein altes Gurken-Plugin sein, nowdays outline wird gut unterstützt und erzeugt nur eine einzige generische Schrittfunktion im Fall von . Kein Wechsel zu "" erforderlich. – user1559625

+0

Noch immer auf CucumberJVM 1.2.5, wenn es über JUnit ausgeführt wird. Also benutze die Anführungszeichen. :-) –

Antwort

23

Sie geben sollte dieses Format verwenden

Scenario Outline: Create ABC 

    Given I open the application 
    When I enter username as "<username>" 
    And I enter password as "<password>" 
    Then I enter title as "<title>" 
    And press submit 

sagen Welche

@When("^I enter username as \"([^\"]*)\"$") 
public void I_enter_username_as(String arg1) throws Throwable { 
    // Express the Regexp above with the code you wish you had 
    throw new PendingException(); 
} 
produzieren würde

arg1 wird jetzt Ihr Benutzername/Wert übergeben.

+0

Danke das hat funktioniert! – trial999

+2

Danke! Ich möchte auch erklären, dass \ "([^ \"] *) \ "eine Regex ist und nach einer Zeichenfolge sucht, die mit einem Anführungszeichen beginnt" und mit einer undefinierten Anzahl anderer Zeichen endet (asterisk * liefert das). Wenn wir uns also "" anschauen, können wir sehen, dass es mit Anführungszeichen beginnt. "Hoffen, dass es jemandem hilft. – hipokito

+1

wie von @hipokito geklärt, als eine Alternative ** wird es auch" @When ("^ Ich gebe den Benutzernamen als ein \ "(. +) \" $ ")' – DaddyMoe

0

Gurke würde die fehlenden Schritte in der Konsole automatisch geben. Machen Sie einfach einen Trockenlauf und fehlende Schritte werden in der Konsole angezeigt.

@RunWith(Cucumber.class) 
@CucumberOptions(plugin = { "pretty" }, features = { "<path_to_feature>" }, 
    glue = { "<optional_steps_location_java_file>" }, dryRun = true, 
    tags = { "<optional_NOT_req_for_now>" }) 
public class RunMyCucumberTest { 

} 

See for more Cucumber options

Verwandte Themen