Ich bin mir nicht sicher, warum das Folgende nicht funktioniert.Assertion schlägt in groovy, obwohl die Ausgabe die gleichen sind
Ich vergleiche einfach eine Antwort mit einer Reihe von Werten. Die Antwort kommt von einem json wo vorderen Ende die Kosten wie folgt aussieht:
20, 25, 40, 50
Aber wenn man es packen, es angezeigt wird, wie [[20.0000, 25.0000, 40.0000, 50.0000]]
Also habe ich die Antwort, wie so abgeflacht:
json.groups.options.cost.flatten()
Diese Ausgänge:
[20.0000, 25.0000, 40.0000, 50.0000]
Jetzt möchte ich die oben mit einigen ha vergleichen rdcodierte Werte. Also habe ich diese Variable:
def cost = [20, 25, 40, 50].collect { "${it}.0000" }
Und diese Ausgänge:
[20.0000, 25.0000, 40.0000, 50.0000]
Also, wenn ich sie behaupten beide zusammen, ich erwarte, dass sie arbeiten, aber sie tun es nicht.
assert cost == json.groups.options.cost.flatten()
nun interessant, was ist, wenn ich haben die gleiche Behauptung aber Kosten wird wie im Folgenden beschrieben:
def cost = [20.0000, 25.0000, 40.0000, 50.0000]
Die Behauptung geht. Wie kommt es, dass es nur funktioniert und wie kann ich es mit der .collect
Methode auf die ursprüngliche Weise arbeiten?