我正在使用Concordion来测试一些java组件。我将写下这样的内容
<pre concordion:execute="someFunction(#TEXT, #a)">
{
id:123,
name:<span concordion:echo="#b"/>
}
</pre> 我希望#b的值是动态计算和替换的。但是,someFunction中不是值#b,而是一个空字符串。类似地,如果使用
name:<span concordion:execute="getBValue()"/>如果有人做了这样的事情,你能帮帮忙吗?
谢谢。
发布于 2016-07-08 01:32:17
我认为Concordion不是为这个用例而设计的。它不是模板引擎。您可以将规范的文本元素作为输入传输到您的自动化测试中。此外,您可以使用规范中的值作为参考,以比较测试系统的实际输出。
当您想要将某个方法getBValue()的结果转移到另一个方法someFunction()中时,您可能有以下几种选择:
在你的someFunction()?
<pre concordion:execute="someFunction(#TEXT, #a, #b)">
{
id:123,
name:placeholder-for-value-b
}
</pre>
然后在someFunction()中,你可以替换占位符:
public void someFunction(String text, String aValue, String bValue) {
text.replace("placeholder-for-value-b", bValue);
//continue logic of someFunction
}发布于 2016-07-01 02:28:24
您可以使用名称来初始化变量# execute command:
<span concordion:execute="#name=getBValue()"/>然后是echo command
name: <span concordion:echo="name" />或者,您是否尝试过在echo命令中直接调用您的方法?
name: <span concordion:echo="getBValue()" />发布于 2016-07-04 19:19:46
您的问题是否与html结构有关?当您使用嵌套元素时,
<pre concordion:execute=...> <span concordion:assert-equals=...>...</span> <span concordion:set=...>...</span> </pre>Concordion使用以下执行顺序:
断言
、echo等。
这就是Concordion handles unusual sentence structures的方式。
如何将execute-command放在专用的span-tag中呢?
<pre> <span concordion:execute=...>...</span> <span concordion:echo=...></span> </pre>https://stackoverflow.com/questions/38039943
复制相似问题