变量不会在参数和断言语句中替换

时间:2018-05-17 10:55:00

标签: karate

我有以下代码

#create document type
* print 'create document type'
* def documentTypeNameValue = 'sum2'
* print documentTypeNameValue
* def result = call read('classpath:examples/commonResources/documentTypes/createDocumentType.feature') { X-CSRF-TOKEN: csrfToken, JSESSIONID: jsessionid, documentTypeName: documentTypeNameValue, inputFile: 'examples/commonResources/documentTypes/add2NumbersDoc.json'}
Then  match result.response.integration.message.description contains 'Success'

Then  match result.response.integration.serviceData.message contains '#(documentTypeNameValue)'  +' created successfully'

变量'documentTypeNameValue'在print语句中正确打印 但是当我在将参数作为参数传递给特征文件时尝试使用相同的变量时,在断言语句中,此变量不会被实际值替换('此处为sum2)

请建议一些解决方案,将变量值替换为参数,并在断言

我还附上了截图供参考enter image description here

1 个答案:

答案 0 :(得分:0)

这很难理解。所以我可能无法提供太多帮助。

2件事。

如果JSON键中有连字符,则需要使用引号,否则它无效JSON { 'X-CSRF-TOKEN': '#(csrfToken)' }

并且您没有在需要的地方使用嵌入式表达式。

你又犯了同样的错误,嵌入式表达式应该是整个RHS字符串值或JSON值。

你可以这样做(普通的JS)。请仔细阅读文档,尤其是Karate Expressions上的部分。

Then  match result.response.integration.serviceData.message contains documentTypeNameValue  + ' created successfully'