【发布时间】:2020-04-21 23:29:14
【问题描述】:
我正在测试以下端点:
app.post('/api/master/makeLeaderInZone', authenticateMaster, (request, response) => {
var body = _.pick(request.body, ['zoneId', 'leaderId'])
Zone.findById(body.zoneId).then((zone) => {
if (zone) {
return zone.addLeader(body.leaderId)
} else {
return Promise.reject()
}
}).then(() => {
return Volunteer.findById(body.leaderId)
}).then((volunteer) => {
if (volunteer) {
return volunteer.addToZoneAsLeader(body.zoneId)
} else {
return Promise.reject()
}
}).then(() => {
response.status(200).send()
}).catch((error) => {
response.status(400).send()
})
})
这是我正在使用的测试:
describe('makeLeaderInZone', () => {
test('neither zone nor volunteer valid', () => {
request(app)
.post('/api/master/makeLeaderInZone')
.set('master-auth', 'master')
.send().expect(400)
})
})
当我使用邮递员对其进行测试时,该端点运行良好。但是,通过这个测试,我得到了以下错误:
超时 - 在 5000 毫秒超时内未调用异步回调 由 jest.setTimeout.Error 指定:超时 - 异步回调不是 在 jest.setTimeout 指定的 5000 毫秒超时内调用。
正如this answer 中提到的,我在测试中添加了以下代码行,让 jest 等待我的请求完成的时间更长:
jest.setTimeout(30000);
但是,我仍然得到完全相同的错误。好像 jest 忽略了这一行,只等待 5000ms。
我应该怎么做才能使这个测试工作?
【问题讨论】:
标签: javascript node.js express asynchronous jestjs