如何在单元测试中解决异步等待 - javascript

Jim*_*imi 13 javascript lambda unit-testing

我有一个lambda,我想为它编写单元测试.我正在使用异步等待,但我遇到了解决承诺的问题.我想测试不同的条件,我如何编写测试来解决并停止查看超时?

提前致谢.

错误:超出2000ms的超时.对于异步测试和挂钩,确保调用"done()"; 如果返回Promise,请确保它已解决.

---单位

describe('tests', function() {

    describe('describe an error', () => {
        it('should return a 500', (done) => {
            handler('', {}, (err, response) => {
                expect(err.status).to.eq('failed')
                done()
            })
        })
    })

});
Run Code Online (Sandbox Code Playgroud)

- 处理程序

export const handler = async (event, context, callback) => { 

 return callback(null, status: 500 )

})
Run Code Online (Sandbox Code Playgroud)

dhi*_*ilt 7

试试以下:

describe('tests', function() {
    describe('describe an error', () => {
        it('should return a 500', (done) => {
            await handler('', {}, (err, response) => {
                expect(err.status).to.eq('failed');
            })
            done();
        })
    })
});
Run Code Online (Sandbox Code Playgroud)

要么

describe('tests', function() {
    describe('describe an error', () => {
        it('should return a 500', async () => {
            const error = 
              await handler('', {}, (err, response) => Promise.resolve(err))
            expect(error.status).to.eq('failed');
        })
    })
});
Run Code Online (Sandbox Code Playgroud)

无论如何,我想,你需要await你的异步处理程序......