我有一个无服务器的应用程序,我想对其进行单元测试
我知道Jest有一个无服务器插件,但是我现在使用经典的Jest。
我在 tools.js 文件
中具有这样的功能const ddb = require('./ddb');
const table = process.env.USER_TABLE;
...
module.exports.mailExist = async email => {
if (!email) {
throw new Error('Missing parameters');
}
return await ddb.scan({
TableName: table,FilterExpression: 'email = :email',ExpressionAttributeValues: {
':email': email
},ProjectionExpression: ['uid']
});
};
我想在 __ test __ / tools.test.js 文件中进行测试
describe('mailExist',async () => {
const email = 'example@example.com';
const mailExist = await tools.mailExist(email)
it('should not exist',() => {
expect(mailExist).toBe({})
})
});
问题是,当我运行测试时,它会返回
在参数中缺少必需的键“ TableName”
因为我的“表”变量是环境变量
如果我因为环境变量而写了我的表名,它将返回
配置中缺少区域
所以我的问题是,我想知道如何在特定文件中测试无服务器应用程序的功能,以及如何将我的AWS配置传递给我的功能?
如果您有任何问题,请告诉我
谢谢
PS:我在ddb文件中的扫描功能如下所示
//ddb.js
module.exports.scan = async params => {
const result = await DynamoDB.scan(params).promise();
return result.Items;
};