再次返回... 因此,在解决了之前的问题之后,我尝试测试该功能,该功能已通过AWS.request和AWS.response对象。我目前收到一个错误,说res.setHeader不是一个函数。理想情况下,我想对响应和请求对象进行存根或模拟,以便我可以测试它们的设置是否正确。这是我正在测试的文件。
const Verifier = require('/verifier.js');
ValidatorFunc = function(callType){
return function (req,res,next){
let Header = req.headers[''];
try {
Verifier.verifierFunc(Header, callType, (Error) => {
if (Error) {
res.setHeader('Content-Type', 'application/json');
res.status(401);
res.json({
message : "Error "+ Error.message
});
} else {
next();
}
});
} catch (otherError) {
res.setHeader('Content-Type', 'application/json');
res.status(401);
res.json({
message : otherError.message
});
}
}
}
到目前为止,我的测试看起来像这样
const { ValidatorFunc } = require('../src/Validator');
const aws = require('aws-sdk');
jest.mock('aws-sdk');
describe('Validator', ()=>{
test('Validator - Error', ()=>{
let aFunc = ValidatorFunc('POST');
let aVar = { headers: ""}; //Wrote this just to see how far I could get into the function
let aVar2 = new aws.Response();
aFunc(aVar, aVar2 ,null);
});
});
我收到res.setHeader不是函数的错误。我认为我可能会以所有错误的方式进行此测试,因此我对如何更改此方法持开放态度。