Как заглушить AWS .SQS.sendMessage с Sinon? - PullRequest
0 голосов
/ 15 января 2020

У меня есть Node.js код, который записывает сообщение в очередь SWS. Я пытаюсь заглушить этот код в своих модульных тестах.

Источник:

var AWS = require('aws-sdk');
var sqs = new AWS.SQS({apiVersion: '2012-11-05'});
sqs.sendMessage(myMessage, function(err, data) {
    if (err) {
      console.log("Error", err);
  });

В Моих модульных тестах я пытаюсь сделать что-то подобное, чтобы заглушить вызов:

sandbox = sinon.createSandbox();
sandbox.stub(AWS.SQS,'sendMessage').callsFake((message,fn) => {
  console.log("Stub AWS sendMessage");
});
sandbox.restore();

Я получаю эту ошибку: Ошибка типа: Невозможно заглушить несуществующее собственное свойство sendMessage

1 Ответ

0 голосов
/ 15 января 2020

Аналогичный вопрос был задан здесь .

Вы можете использовать пакет aws -sdk-mock .

Это действительно удобно. Просто вызовите AWS .mock со службой, методом и функцией-заглушкой.

AWS.mock('SQS', 'sendMessage', function(params, callback) {
    callback(null, 'success'); 
});
...