2016-04-10 19 views
0

Java - salatalık örneğijunit salatalık eksik adımlar hata

i adımları eksik gibi, adımlarını eksik gibi tanımsız bunları dikkate hakkında değiştirilmiş görünüyor

.feature dosyası:

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 

Adımlar dosya:

@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 
    } 

i testi çalıştırdığınızda

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 Senaryolar 2 tanımsız Aşağıdaki snippet'leriyle adımları eksik uygulayabilirsiniz:

@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

Sorular, soruların içinde renk konsolu formatlaması bulunmadığında memnun olur. Yapılandırmanızda 'monochrome = true' kullanın. –

cevap

1

Ben bir dize olarak romen numarayı alıcı düşünün ve bu nedenle düzenli ifade kullanmak istiyorsunuz

Sen then adım şu şekilde görünecektir (*.):

@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(); 
} 

Bu Sebastians cevaba benzer, ama benim görüşüme göre, daha basit bir düzenli ifade. Herhangi bir dizeyi yakalar ve bir parametre olarak geçirir.

Muhtemelen adımda uygulayacağınız iddia, kırık bir şey olup olmadığını size söyleyecektir. Eksik bir adım atmaktan ziyade başarısız bir iddiayı çekmek daha kolay olabilir.

0

Sorun regex olduğunu - \d sadece (yani Java ese içinde \\d var) Arap numaraları maç olacak .

Gerçekten istediğiniz şey ^the roman result is ([IVMCLX]+)$. Bu, Romen rakamlı karakterlerin bir veya daha fazlasıyla eşleşecek ve sonuçları istediğiniz dizeye yapıştıracaktır.