使用0.9.5.RC4的Karate.toMap()适用于方案,但不适用于方案大纲

时间:2019-11-27 19:48:50

标签: karate

  1. 如此处Migration form karate 0.9.2 to 0.9.3 Issue - javascript evaluation failed中所述,我已将空手道版本更新为0.9.5.RC4。

  2. JavaScript的乐趣就像

RewriteEngine on
RewriteRule ^([0-9]+) view.php?iid=$1 [NC, L]
  1. 具有场景**工作*的功能文件
function fn(config) {
  var OAuth2 = {};
  var userAccessToken = Java.type("com.OAuth2Token");
  OAuth2.adminUser = function () {
    return userAccessToken.getAuthorizationHeader(name, url, users, "ADMIN");
  };
  config.OAuth2 = karate.toMap(OAuth2);
  return config;
}
  1. 具有方案大纲无效的功能文件
  Scenario: <scenarioName>
    Given path 'url'
    And header Authorization = OAuth2.adminUser()
    And def Authorization = OAuth2.adminUser()
    And print Authorization

错误:javascript评估失败:OAuth2.adminUser(),TypeError:OAuth2.adminUser不是第1行的函数,我在0.9.3中有相同的错误,并且将函数移至通用功能文件。

1 个答案:

答案 0 :(得分:0)

这是一个错误,将在下一版本中修复:https://github.com/intuit/karate/issues/982

一种解决方法是,在“方案大纲”下为每个循环重新初始化函数:

Scenario Outline:
* def OAuth2 = karate.call('classpath:com/utils.feature)