在HapiJs Lab测试中将间谍添加到request.log

时间:2019-01-15 09:58:34

标签: hapijs lab

我正在通过实验室测试使用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抛出了验证错误。

我不是唯一尝试这样做的人吗?

有什么想法吗?

0 个答案:

没有答案