默认脚手架依赖中已经增加了 @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