【发布时间】:2020-11-20 15:09:08
【问题描述】:
所以我试图通过从 handler.ts 导入一个函数来使用 Jest 进行一些基本的 API 测试,但是 Jest 爬过处理程序 ts 导入并给我处理程序从我的 libs 文件夹中导入的文件的 linter 错误。想要做的是检查该函数的结果是否等于我希望它等于的结果。
这是我的测试文件test/handler.test.ts:
import { getInbox } from './../handler'
import * as myMongo from '../../../libs/mongo';
import { Db } from 'mongodb';
const productionDbPromise: Promise<Db> = myMongo.getProductionDb();
test("Case page 1, limit 5", async ()=>{
const page = 1;
const limit = 5;
const event = {
queryStringParameters: {
page: page,
limit: limit
}
};
const productionDb = await productionDbPromise;
const seekerCollection = productionDb.collection('seekers');
const totalDocs = await seekerCollection.countDocuments({ lastMessageDate: { $ne: null } });
const code = 200;
const status = 'OK';
const res: any = await getInbox(event);
expect(res.code).toEqual(code);
expect(res.status).toEqual(status);
expect(res.json().totalDocs).toEqual(totalDocs);
expect(res.json().seekers.length).toEqual(limit);
});
这是错误:
Test suite failed to run
TypeError: twilio is not a function
6 | export const client = twilio(accountSid, authToken);
7 | export const messagingServiceSid = process.env.TWILIO_SERVICE_ID;
> 8 |
| ^
at Object.<anonymous> (../../libs/twilio.ts:8:18)
at Object.<anonymous> (../../libs/message.ts:7:18)
at Object.<anonymous> (handler.ts:14:19)
at Object.<anonymous> (__test__/handler.test.ts:4:19)
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 12.086 s
npm ERR! Test failed. See above for more details.
知道如何让它忽略这个吗? (顺便说一下,我正在测试的函数甚至不使用该库文件中的任何导出,并且 twilio 对象已正确导入该文件的第一行)
【问题讨论】:
标签: node.js typescript testing jestjs ts-jest