2016-05-18 5 views
0

Wenn ich Cucumber in Java-Test verwende, scheint es etwas falsch mit der JSON-Zeichenfolge als Eingabe, z.Gurke teilt JSON-Zeichenfolge falsch in Java

Scenario Outline: not work 
Given anythin 
When I use <body> as body to call <url> 
Then I'll get a status code of <status> 

Examples: 
| body | url    | status  | 
| {"id":5}| /rest/update/0 | 404   | 

Und der Fehler zeigt:

You can implement missing steps with the snippets below: 

@When("^I use {\"([^\"]*)\":(\\d+)} as body to call \"([^\"]*)\"$") 
public void i_use_as_body_to_call(String arg1, int arg2, String arg3) throws Throwable { 
// Write code here that turns the phrase above into concrete actions 
throw new PendingException(); 

}

Aber in der Tat, der ganze JSON-String nicht geteilt werden soll.

Antwort

0

Ich setze json nicht direkt in eine Schrittdefinition, weil ich denke, dass es zu chaotisch ist. Versuchen Sie these examples.

Ich habe keine Szenariokonturen verwendet, aber ich denke, Sie könnten es tun. Wie auch immer, das kann am Ende sehr unordentlich zu lesen sein. Außerdem lege ich normalerweise alle Szenariokonturen in Anführungszeichen, um sie sauber zu halten. Noch eine Sache, ich teile meine JSON-Nachrichten innerhalb der Schrittdefinitionen auf, nicht direkt im Schritt Regexp.

+0

Vielen Dank für Ihre Antwort, Dave. Es funktioniert wirklich. Aber heißt es, ich sollte niemals JSON-Strings in Step Regexp setzen? Es ist schwer, eine solche Definition durch einige andere Sprachen wie Chinesisch oder Japanisch zu schreiben. Haben Sie Vorschläge für den Fall? –

+0

würde ich nicht. Wenn Ihr JSON super einfach ist wie {"id": 5}, dann können Sie es vielleicht spezifizieren. Und ich rufe "" mit ID "5" an, dann stopfen Sie es einfach in die JSON-Nachricht und senden Sie es. Es ist einfach zu schwierig für etwas Komplexes. Es ist es nicht wert, weil es Ihre Produktivität verlangsamen wird. –