2016-04-01 7 views
0

In meiner Java-Klasse habe ich eine Reihe von Strings definiert, und ich kann jedem von ihnen bekommen seinen Index bietet:Concordion eine variable Zeichenfolge gedruckt in grün

  <span c:execute="#errStr=#page.getDictionaryString(2)"/> 

so #errStr meine String enthält

im Test erhalte ich die Schnur, um zu überprüfen, in einem anderen var (#str)

  <span c:execute="#str = #e.get()"/> 

Jetzt kann ich ein grünes "true", wenn sie die gleichen sind:

  <span c:assertTrue="#str.equals(#errStr)">true</span> 

Irgendwie "True" fügt weniger Wert beim Lesen der Ausgabe, möchte ich dort lesen (in grün) den Wert von #str (oder #errStr, das das gleiche ist).

Ist es möglich?

Wenn das nicht möglich ist, ist es möglich, mindestens den Wert von # str in normaler Farbe zu haben, so dass ich dann ein grünes "wahres" in der Nähe hinzufügen werde?

Antwort

0

Dieser Anwendungsfall wird nicht von Anfang an unterstützt, da Concordion Sie dazu ermutigt, die erwarteten Werte in der Spezifikation zu definieren, anstatt Werte dynamisch abzuleiten. Wenn möglich, sollten Sie den erwarteten Wert in die Spezifikation verschieben.

Wenn dies nicht möglich ist, können Sie einen benutzerdefinierten Befehl durch die Verwendung von Concordion-Erweiterungen schreiben, die genau das tut, was Sie wollen.

oder die folgende geben Ihnen eine Annäherung:

<span c:assertTrue="#str.equals(#errStr)"><span c:echo="#str"/></span> 

Die echo Befehl gibt den Wert eines Ausdrucks der Spezifikation. Dadurch wird der Wert #str ausgegeben und der Ausgang grün eingefärbt. Bei einem Fehler wird der Wert #str rot und durchgestrichen angezeigt, wobei =false daneben gedruckt wird (hier würde ein benutzerdefinierter Befehl die Ausgabe verbessern).

+0

Genau das habe ich gesucht. Danke, guter Platz! –

Verwandte Themen