Node.js 如何为AWS SQS编写mocha单元测试?

Node.js 如何为AWS SQS编写mocha单元测试?,node.js,unit-testing,amazon-sqs,Node.js,Unit Testing,Amazon Sqs,我的代码是: const validateFile = function(file) { // DoStuff } const validatorConsumer = Consumer.create({ queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name', handleMessage: (message, done) => { return FileLi

我的代码是:

  const validateFile = function(file) {
    // DoStuff
  }

  const validatorConsumer = Consumer.create({
    queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
    handleMessage: (message, done) => {
      return FileLib.downloadFromBucket(message)
      .then(validateFile)
      .then(done)
    }
  })

我正在使用
npm
中的
sqs消费者
包。如何编写单元测试以查看它是否有效?

我假设您希望对
handleMessage
函数进行单元测试

如果在单独的节点模块中定义函数,则可以在单元测试以及创建使用者的生产代码中
要求它。在您的测试中,您只需传入一条手动创建的消息,该消息可能会出现在队列上,并传入一个自定义函数,用于执行测试断言的
done
回调

// messageHandler.js
module.export = function(message, done) {
    // message handler code...
    return FileLib.downloadFromBucket(message)
        .then(validateFile)
        .then(done)
    }
}

// main.js
const messageHandler = require('./messageHandler');
const validatorConsumer = Consumer.create({
    queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
    handleMessage: messageHandler
})

// messageHandler.test.js
const messageHandler = require('./messageHandler');
const message = '...' // create a sample message here

it('handles message correctly', done => {
    messageHandler(message, result => {
        // assertions go here...
        done();
    })
});

我假设您想对
handleMessage
函数进行单元测试

如果在单独的节点模块中定义函数,则可以在单元测试以及创建使用者的生产代码中
要求它。在您的测试中,您只需传入一条手动创建的消息,该消息可能会出现在队列上,并传入一个自定义函数,用于执行测试断言的
done
回调

// messageHandler.js
module.export = function(message, done) {
    // message handler code...
    return FileLib.downloadFromBucket(message)
        .then(validateFile)
        .then(done)
    }
}

// main.js
const messageHandler = require('./messageHandler');
const validatorConsumer = Consumer.create({
    queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
    handleMessage: messageHandler
})

// messageHandler.test.js
const messageHandler = require('./messageHandler');
const message = '...' // create a sample message here

it('handles message correctly', done => {
    messageHandler(message, result => {
        // assertions go here...
        done();
    })
});