空手道特征文件中如何使用.js文件中的参数调用Javascript函数

时间:2018-09-19 08:55:05

标签: karate

可以说我在功能js文件中创建了javascript函数。

function getReviews(reviews){
var length_reviews = reviews.length return length_reviews }

function getReviewsLength(reviewLength){
return reviewLength }

函数getReviews中的参数reviews是一个数组。 现在,我将如何在一个功能文件中调用getReviews函数。 当我尝试以下代码时

* def jsFunction = call read('functions.js') * def review = jsFunction.getReviews(reviewFromFeatureFile) 我收到

的错误

Cannot read property "length" from undefined

我已经打印了reviewFromFeatureFile,并且它正确显示在打印语句中。

2 个答案:

答案 0 :(得分:1)

正如Peter前面提到的,您可以使您的js内联在功能上

* def reviews = [{"r1":2},{"r1":3},{"r1":4}]
* def getReviews = function(reviews){ return reviews.length }
* def getReviewsLength = getReviews(reviews)
* print getReviewsLength

在此示例中,它应打印3。

有关在空手道中处理javascript或其他可重用模块的更多其他选项,请参阅本文

Organizing re-usable functions in karate

答案 1 :(得分:0)

在一个“通用”功能文件中,定义如下多个方法:

* def uuid = function(){ return java.util.UUID.randomUUID() + '' }
* def now = function(){ return java.lang.System.currentTimeMillis() }

您现在可以像这样调用此功能:

* call read('common.feature')

现在该功能中的所有功能都可以使用:

* def id = uuid()
* def time = now()