我正在通过实验室测试使用HapiJ。
在我的控制器中,当引发错误时,我使用request.log:
getData = async (request, h) => {
try{
//code
}
catch(err){
request.log('error', 'An error has occurred: ' + err);
}
}
在测试中,我想确保已调用request.log。
it('should log an error if an error occurs', async function () {
let server = new Hapi.Server();
server.route(pluginRoutes);
let request = { method: 'GET', url: '/api/getData' };
Sinon.spy(request, 'log');
// stub throws error
const response = await server.inject(request);
expect(request.log.calledOnce).to.equal(true);
request.log.restore();
});
在调用server.inject时传递了请求,因此我尝试向我的请求对象中添加一个日志函数并将其存根,但是Hapi抛出了验证错误。
我不是唯一尝试这样做的人吗?
有什么想法吗?