Mocha单元测试JavaScript中的模拟变量

时间:2019-04-04 16:39:36

标签: testing mocha sinon

我正在使用Mocha编写Javascript测试用例。我的代码完全像这样apigee

此javascript部署在apigee云中。它可以访问平台变量。这是myscript my-code.js

    var responseCode = parseInt(context.getVariable(properties.source));

var log = {
    org: context.getVariable(organization.name),
    env: context.getVariable(environment.name),
    responseCode: responseCode,
    isError: (responseCode >= 400)
};

if (log.isError) {
    log.errorMessage = context.getVariable(flow.error.message);
}

var logglyRequest = new Request(
        'https://loggly.com/aaa', 
        'POST', 
        {'Content-Type': 'application/json'}, 
        JSON.stringify(log)
);
httpClient.send(logglyRequest);

javascript代码将在运行时访问properties.source。 Apigee平台具有jc如何访问这些参数的内部方法。我的问题是,如果我正在为此jc编写测试用例,我将如何模拟properties.source的值。我能够模拟函数调用context.getVariable()。我收到ReferenceError:属性未定义。给定的apigee链接中的测试脚本相同。

1 个答案:

答案 0 :(得分:0)

尝试在测试中添加以下内容:

global.properties = {
  source: 'jwt.Decode-IAM-JWT.decoded.header.kid'
};

这就是我所做的,而且效果很好。