-1

我正在使用 sinon 在 nodejs 中编写一个测试文件,并且需要在函数调用中使用中间件,如下所示。

baseHandler.js

exports.baseHandler=async()=>{
  // some code
}

baseHandlerTest.js

const app = require('../../main/baseHandler');
const handler=middy(app.baseHandler).use(validator(validatorSchema)); //this doesn't seem to work
const response = await handler(event, null, null, getDnisConfig, toResponse, null);

错误

callback is not a function

我需要在上面的测试文件中进行哪些更改,以便在app.baseHandler调用时,中间件开始验证?

4

1 回答 1

0

middy 在其代码库中充满了测试示例。

这是一个可以帮助您入门的示例。

const test = require('ava')
const middy = require('../../core/index.js')
const validator = require('../index.js')

test('It should validate response', async (t) => {
  const event = {}
  const expectedResponse = {
    body: 'Hello world',
    statusCode: 200
  }

  const handler = middy((event, context) => {
    return expectedResponse
  })

  const schema = {
    type: 'object',
    required: ['body', 'statusCode'],
    properties: {
      body: {
        type: 'string'
      },
      statusCode: {
        type: 'number'
      }
    }
  }

  handler.use(validator({ outputSchema: schema }))

  const response = await handler(event)

  t.deepEqual(response, expectedResponse)
})

您可能还想检查这validatorSchema是正确的结构。

于 2021-11-13T17:18:40.647 回答