Concordion 以绿色打印可变字符串

Concordion print a variable string in green

在我的 java class 中,我定义了一个字符串数组,我可以获得其中任何一个提供其索引的字符串:

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

所以#errStr 包含我的字符串

在测试中我收到了要验证的字符串,在另一个 var (#str)

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

现在,如果它们相同,我可以得到一个绿色"true":

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

无论如何 "true" 在读取输出时增加的值较少,我想在那里(绿色)读取 #str 的值(或相同的 #errStr)。

可能吗?

如果这不可能,是否可以至少使用正常颜色的 #str 值,以便我在其附近添加绿色 "true"?

此用例不受开箱即用的支持,因为 Concordion 鼓励您在规范中定义预期值,而不是动态派生值。如果可能,您应该将期望值移到规范中。

如果这不可能,您可以通过使用 Concordion 扩展来编写一个自定义命令,它完全符合您的要求。

或者以下将为您提供一个近似值:

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

echo 命令将表达式的值输出到规范。这将打印 #str 的值,并将输出着色为绿色。失败时,#str 的值将变为红色和删除线,并在其旁边打印 =false(这是自定义命令改进输出的地方)。