Тестирование без сервера с плагином Mocha - PullRequest
0 голосов
/ 02 января 2019

Я уже некоторое время использую без сервера, однако я впервые пытаюсь использовать мокко для написания тестов.Когда я пытаюсь запустить следующее sls create test --function insiders/create.create, я получаю следующую ошибку Cannot read property 'handler' of undefined.Вот так выглядит мой serverless.yml для созданного мной обработчика

createInsider:
    handler: insiders/create.create
    events:
      - http:
          path: insiders
          method: post
          cors: true

Так определяется плагин Mocha

plugins:
  - serverless-mocha-plugin

Код развернут и работает нормально.Пространство имен как insiders/create.js, где я определил свою функцию.

module.exports.create = () => {}

Я также попробовал следующие способы

sls create test --function insiders/create

sls create test --function create

1 Ответ

0 голосов
/ 02 января 2019

Не уверен, отвечает ли он на ваш вопрос, но поскольку большая часть бизнес-логики для бессерверного кода - это просто обычный javascript, вы можете использовать mocha напрямую для модульного тестирования.

npm install --save-dev mocha

В package.json

  "test": "mocha test/**/*test.js",

Создайте тестовую папку и соответствующие тестовые файлы под ней. Например: для src / insiders / create.js создайте test / insiders / create.test.js

Для каждого обработчика протестируйте выходные данные дляразличные входные данные

Для стиля обратного вызова

describe('create', () => {
  it('should execute', (done) => {
    const event = {};
    const context = {};
    const callback = (_, response) => {
        //assert required things
        done();
    };
    const handler = require('../../src/insiders/create.js');
    handler(event, context, callback)
  });
});

Для стиля асинхронного ожидания

describe('create', () => {
  it('should execute', async () => {
    const event = {};
    const handler = require('../../src/insiders/create.js');
    const result = await handler(event);
    //assert the result
  });
});

Мы используем этот стиль, и он очень хорошо работает для нас.

Редактировать: Исправить шаблон глобуса mocha для рекурсивного поиска всех тестовых файлов.

...