Karate 在空手道0.9.5.RC5中将Json对象作为def传递时,Object.keys(数据)Js fu不起作用 具有以下功能的Js文件 具有以下步骤的功能文件 功能:示例功能 场景大纲:示例场景 #这是我的作品 *def a=OAuth2({firstName:'',lastName:''}) *打印 #这行不通 和def req={firstName:'',lastName:''} *def b=OAuth2(需要) *打印b 示例: |姓| |a | a1| 在var keys=Object.keys(数据)处给出错误 javascript求值失败:OAuth2(req),TypeError:{firstName=a,lastName=a1}不是中的对象

Karate 在空手道0.9.5.RC5中将Json对象作为def传递时,Object.keys(数据)Js fu不起作用 具有以下功能的Js文件 具有以下步骤的功能文件 功能:示例功能 场景大纲:示例场景 #这是我的作品 *def a=OAuth2({firstName:'',lastName:''}) *打印 #这行不通 和def req={firstName:'',lastName:''} *def b=OAuth2(需要) *打印b 示例: |姓| |a | a1| 在var keys=Object.keys(数据)处给出错误 javascript求值失败:OAuth2(req),TypeError:{firstName=a,lastName=a1}不是中的对象,karate,Karate,请不要使用Object.keys()-改用。请不要使用Object.keys()-改用。空手道.keysOf()有效,但为什么*def a=OAuth2({firstName:'',lastName:''})使用Object.keys()?@Jdafda,因为这是纯JS。默认情况下,karate将JSON转换为与“普通”JS不兼容的Java(Map)对象。请把这个答案标记为“接受”——你似乎从来没有这样做过:哈哈。。当然因此,您的意思是当作为def req={firstName:'',lastN

请不要使用
Object.keys()
-改用。

请不要使用
Object.keys()
-改用。

空手道.keysOf()有效,但为什么
*def a=OAuth2({firstName:'',lastName:''})
使用Object.keys()?@Jdafda,因为这是纯JS。默认情况下,karate将JSON转换为与“普通”JS不兼容的Java(
Map
)对象。请把这个答案标记为“接受”——你似乎从来没有这样做过:哈哈。。当然因此,您的意思是当作为
def req={firstName:'',lastName:''}
传递时,它将转换为Java(映射),但当作为
OAuth2({firstName:'',lastName:''})传递时,
它的JsonObject@Jdafda这是正确的。感谢您的“接受”:)karate.keysOf()有效,但为什么
*def a=OAuth2({firstName:'',lastName:''})
使用Object.keys()?@Jdafda,因为这是纯JS。默认情况下,karate将JSON转换为与“普通”JS不兼容的Java(
Map
)对象。请把这个答案标记为“接受”——你似乎从来没有这样做过:哈哈。。当然因此,您的意思是当作为
def req={firstName:'',lastName:''}
传递时,它将转换为Java(映射),但当作为
OAuth2({firstName:'',lastName:''})传递时,
它的JsonObject@Jdafda这是正确的。感谢您的“接受”:
function fn(config) {

 config.OAuth2 = function (data) {
   var keys = Object.keys(data);
   return keys;
 }
 return config;
}
   Feature: Sample Feature

    Scenario Outline: Sample Scenario

    #This is works
    * def a = OAuth2({firstName: '<firstName>',lastName: '<lastName>'})
    * print a

    #This do not work
    And def req = {firstName: '<firstName>',lastName: '<lastName>'}
    * def b = OAuth2(req)
    * print b

    Examples:
      | firstName | lastName |
      | a         | a1       |
javascript evaluation failed: OAuth2(req), TypeError: {firstName=a, lastName=a1} is not an Object in <eval>