默认脚手架依赖中已经增加了 @midwayjs/serverless-invoke 包来进行测试。如果没有安装,可以手动安装一下。
npm i @midwayjs/serverless-invoke --save-dev
普通函数测试
测试的传统目录为 test ,后缀为 ***.test.ts ,内容如下。
import { invoke } from '@midwayjs/serverless-invoke';import * as assert from 'assert';describe('/test/index.test.ts', () => {it('should use default event', async () => {const result = await invoke({functionName: 'index', // 传入函数名data: [ // 函数参数,数组结构,这里的数据会传递给函数的 event{name: 'faas',},],});assert(result.data === 'hello world, faas');});});
可以直接调用 f test 来执行测试。
HTTP 触发器测试
import { invoke } from '@midwayjs/serverless-invoke';import * as assert from 'assert';describe('/test/index.test.ts', () => {it('should use default event', async () => {const result = await invoke({functionName: 'index', // 传入函数名data: [ // 函数参数,数组结构,这里的数据会传递给函数的 event{headers: { 'Content-Type': 'text/json' },method: 'POST',path: '/test',query: {name: 'q',},body: {name: 'test',},},],});// assert result});});
更多示例,请参考 https://github.com/midwayjs/cli/blob/master/packages/faas-cli-plugin-invoke/test/http.test.ts

