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

时间:2018-03-05 17:22:04

标签: 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 FileLib.downloadFromBucket(message)
      .then(validateFile)
      .then(done)
    }
  })

我正在使用sqs-consumer中的npm个包。如何编写单元测试以确定它是否有效?

1 个答案:

答案 0 :(得分:2)

我假设你想对handleMessage功能进行单元测试。

如果您在单独的节点模块中定义该功能,您可以在单元测试中require以及创建消费者的生产代码中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(); }) }); 回调的自定义函数。

{{1}}