我的有效负载有一个标签数据,我将其值设置为“测试”..
* set test.input.data = 'test'
* def listData = ["testcoding", "testcoding", "testcoding"]
* match each listData contains '#(test.input.data)'
当我进行匹配时,它失败并出现以下错误 -
$ | match each failed at index 0 (LIST:STRING)
["testcoding", "testcoding", "testcoding"]
'#(test.input.data)'
$ [0] | not equal (STRING:STRING)
'testcoding'
'test'
但是当我将值直接传递给匹配语句时,它通过了验证 -
* set test.input.data = 'test'
* def listData = ["testcoding", "testcoding", "testcoding"]
* match each listData contains 'test'
这是预期的行为吗?当我们在匹配条件下将子字符串作为变量传递时,为什么验证失败?我做错了什么吗?
感谢任何帮助。如果您需要有关该错误的更多详细信息,请随时告诉我。
PS - 如果
test.input.data
不是子字符串,它会毫无问题地返回。
示例:-
* set test.input.data = 'testcoding'
* def listData = ["testcoding", "testcoding", "testcoding"]
* match each listData contains '#(test.input.data)'
结果 - 通过/成功
contains
关键字仅适用于 JSON 数组。当尝试执行进入 Javascript 世界的“子字符串”时,执行此操作的 API 称为 includes()
。
所以试试这个:
* def data = [ 'testcoding', 'testcoding', 'testcoding' ]
* match each data == "#? _.includes('test')"
* match each data == "#? _.startsWith('test')"