2016-04-10 6 views
0

Java - Gurke Beispieljunit Gurke fehlenden Schritte Fehler

sieht aus wie ich Schritte fehle, es geht um beschwert Schritte fehlt und sie als nicht definiert

.feature Datei Berücksichtigung

Feature: Roman Feature 

    Scenario: Convert Integer to Roman Number 
    Given I am on the demo page 
    When I pass number 1 
    Then the roman result is I 


    Scenario: Convert Integer to Roman Number 
    Given I am on the demo page 
    When I pass number 5 
    Then the roman result is V 

Steps Datei:

@When("^I pass number (\\d+)$") 
    public void convert_numbers_to_roman(int arg1) throws Throwable { 
     // convert number 

    } 



@Then("^the roman result is (\\d+)$") 
    public void the_roman_result_is(int result) throws Throwable { 
     // match result 
    } 

Wenn ich den Test ausführen

Scenario: Convert Integer to Roman Number [90m# net/xeric/demos/roman.feature:3[0m 
    [32mGiven [0m[32mI am on the demo page[0m    [90m# DemoSteps.i_am_on_the_demo_page()[0m 
    [32mWhen [0m[32mI pass number [0m[32m[1m1[0m     [90m# DemoSteps.convert_numbers_to_roman(int)[0m 
    [33mThen [0m[33mthe roman result is I[0m 

6 Szenarien 2 undefined Sie können die Schritte mit dem Schnipsel implementieren unten fehlen:

@Then("^the roman result is I$") 
public void the_roman_result_is_I() throws Throwable { 
    // Write code here that turns the phrase above into concrete actions 
    throw new PendingException(); 
} 
+0

Es wird geschätzt, wenn Fragen keine Farbkonsolenformatierung enthalten. Verwenden Sie in Ihrer Konfiguration "monochrom = true". –

Antwort

1

Ich würde die römische Zahl als String zu kontrollieren und damit den regulären Ausdruck

Sie then Schritt würde wie folgt aussehen (. *): Zu Sebastians Antwort

@Then("^the roman result is (.*)$") 
public void the_roman_result_is_I(String expectedRoman) throws Throwable { 
    // Write code here that turns the phrase above into concrete actions 
    throw new PendingException(); 
} 

Dies ist ähnlich, aber meiner Meinung nach ein einfacherer regulärer Ausdruck. Es fängt eine beliebige Zeichenfolge ab und übergibt sie als Parameter.

Die Behauptung, die Sie wahrscheinlich in den Schritt implementieren werden, wird Ihnen sagen, ob etwas kaputt ist. Es könnte leichter sein, eine fehlgeschlagene Behauptung zu schiessen, als einen fehlenden Schritt zu schiessen.

0

Das Problem ist in Ihrem regex - \d nur eine arabische Ziffer übereinstimmen (das ist \\d in Java-ese) .

Was Sie wirklich wollen, ist ^the roman result is ([IVMCLX]+)$. Dies passt zu einem oder mehreren Zeichen mit der römischen Ziffer und klebt die Ergebnisse in die Zeichenfolge Ihrer Wahl.