【发布时间】:2019-06-13 12:40:30
【问题描述】:
功能文件中的以下功能适用于版本 0.9.2。升级到 0.9.3,这会产生错误:javascript function call failed: Index: 0.0, Size: 0。代码如下:
var cnd = ['test1','test2'];
function set_filter(arg)
{
var i;
var filter = {filterValues:[]};
for(i=0;i<arg.length;i++)
{
filter.filterValues[i] = arg[i];
}
return filter;
}
set_filter(cnd)
我之前也可以使用下面的方法将值推送到 javascript 数组中,但这在 0.9.3 中也已停止工作。获取错误:javascript function call failed: TypeError: arr.push is not a function
var arr = [];
arr.push('test1','test2');
尝试以下在 0.9.2 中有效但在 0.9.3 中报告错误(如上所述)的场景
Scenario: JS test
* def filter_template =
"""
function() {
var filter_params = {
filterValues:[]
};
return filter_params;
}
"""
* def template = call filter_template
* def filter_condition = ['test1','test2']
* def setFilter =
"""
function(arg) {
var i;
var filter = arg.filter_template;
for(i=0;i<arg.condition.length;i++)
{
filter.filterValues[i] = arg.condition[i];
}
return filter;
}
"""
* def getFilter = call setFilter { filter_template: '#(template)', condition: '#(filter_condition)' }
* print getFilter
非常感谢您的帮助。
【问题讨论】:
-
你能不能把它变成一个可行的例子,我可以粘贴到一个新的
Scenario:并在本地尝试?了解您如何将此 JS 与功能文件混合对我来说很重要。或者请遵循以下流程:github.com/intuit/karate/wiki/How-to-Submit-an-Issue -
@PeterThomas 我已经编辑了问题并添加了工作示例。
标签: karate