首页 > 解决方案 > 如何调用 validate.js 并在功能文件中使用它(验证响应)?

问题描述

如何调用 validate.js 并在功能文件中使用它(验证响应的特定部分)?

我正在尝试使用https://github.com/validatorjs/validator.js,这是一个包含一些开箱即用的很棒的验证器的库。

在阅读空手道文档时,有一种方法可以读取/调用和读取 .js 文件,所以我教导必须有一种方法来做到这一点。https://intuit.github.io/karate/#schema-validation

我走了这么远,但是:ReferenceError: "isNumeric" is not defined in at line number 1

var validator = require('validator');
* def isNumeric = validator.isNumeric ;

In a scenario:
    And match each response/list/costs/numberX == '#? isNumeric(_)'

我觉得我真的很亲近...

标签: karatevalidator.js

解决方案


不幸的是,到目前为止,Karate 仅支持 ES5(通过Nashorn),也不支持 JS“模块”概念,例如importorrequire关键字。

我个人认为这是一件好事,你使用的JS越多,你的脚本就越难以维护。而且也没有什么好的调试方法。请注意,空手道具有执行“功能样式”循环转换的语法。

我还发现,在您认为需要 JS 的大多数情况下,Karate 的内置模式验证就足够了,或者是更好的选择。

也就是说,我们希望当我们切换到Graal时(提议,并且是 Java 13+ 的必须),我们将能够使用 ES6+,我个人期待函数的箭头符号。


推荐阅读