2016-07-11 7 views
0

Ich versuche, eine Zahl in ein Feld einzugeben, das mit führenden Nullen beginnt. Wenn diese Nummer eingegeben wird, werden die führenden Nullen entfernt.Ruby Cucumber trimmen führende Null von String Cucumber

Erwartet: 000632 Aktuell: 632

Dies sind die letzten 6 Ziffern einer längeren Zahl so muss ich die Null (n) gibt.

Der Parameter, in dem diese Nummer verwendet wird, wurde in eine Zeichenfolge konvertiert, entfernt aber immer noch die Nullen.

Ich habe eine Transformations-Block in meiner env-Datei automatisch Ziffern zu konvertieren integer:

Transform /^\d+$/ do |number| 
    number.to_i 
end 

Obwohl die Regex für meine Zeichenfolge verwendet ([^"]*/) ist

Es ist wie der Block-Transformation sieht stört. Gibt es einen Weg dahin? Ich bin kein Regex Master :-)

Dank

+0

Das ist, warum ich don verwende keine Transformationen. Ich bekomme zu viele unbeabsichtigte Konsequenzen. –

+0

Etwas, das ich langsam realisiere! – Tom

Antwort

1

Transformationsblöcke für Match gegen jedes Spiel in der Prüfschritte extrahiert werden geprüft. Aus diesem Grund stimmt die Zeichenfolge "000632" mit der von Ihnen geposteten Transformation überein, und Sie erhalten die Ganzzahl anstelle der gewünschten Zeichenfolge. Wenn Sie Strings von Ziffern verhindern wollen, beginnend mit 0 von passenden müssen Sie Ihre Transformation Regex etwas ändern wie

Transform /^[1-9]\d*$/ do |number| 
    number.to_i 
end 

die nur dann Ziffernfolgen entsprechen, beginnend mit 1-9

+0

Danke noch einmal, Tom. Das hat geholfen. – Tom

Verwandte Themen