节点js-添加钒导致组件测试失败,hook-std不是函数

时间:2018-09-24 16:08:40

标签: javascript node.js amazon-s3 aws-lambda cucumber

我当时使用Joi验证来验证传入的AWS lambda事件,但被告知一个名为vandium(https://www.npmjs.com/package/vandium)的项目,该项目处理由S3事件通知触发的lamabda的事件验证。代码如下:

const vandium = require('vandium');

exports.handler = vandium.s3(async(event, content) => {
     ...
});

但这导致组件测试失败-使用chai,hook-std,黄瓜,aws-sdk-mock和aws-lambda-mock-content。我认为这是发生问题的组件测试中的“何时”步骤:

When('the lambda is triggered by the event notification', async() => {
    let unhookStdOut = hookStd.stdout(output => {
        world.logs += output;
    });

    let unhookErrOut = hookStd.stderr(output => {
        world.errors += output;
    });

    try {
        world.actualOutput = await index.handler(world.event, ctx);

        unhookStdOut();
        unhookErrOut();
    } catch (error) {
        console.log(error);
        world.actualError = error;
    }
});

我看不到问题出在哪里,所以我注释掉了unhookStdOut行(第2至4和第12行)以查看日志记录,我得到了:

TypeError: unhookErrOut is not a function
      at CustomWorld.When 
      at <anonymous>
      at process._tickDomainCallback (internal/process/next_tick.js:228:7)

这没有任何意义,因为在添加钒之前,我没有更改任何组件测试,并且它们可以正常工作。任何想法,这是钒的错误吗?

0 个答案:

没有答案