所以我对nodejs和承诺处理有点新意,我试图找出我在这里做错了什么。
现在,当我运行此测试时,我希望它失败并显示throw new Error
中的错误消息,而是测试通过,然后只打印错误消息Invalid: XXXXXXX
作为{{1}的一部分}。
这是我的测试的样子。如果UnhandledPromiseRejectionWarning
不是valid
,我怎样才能使此测试失败?这个测试是用jest运行的。我附上了测试通过的截图(当它失败时)。
true
答案 0 :(得分:2)
UnhandledPromiseRejectionWarning
,因为未处理承诺拒绝。
Jest固有地支持规范中的承诺。为了使异步规范能够利用现有的promise,它应该从spec:
返回it('should receive expected response for each parameter group', () => {
return request(baseURL).get(endPointExtensions[0]).then((res) => {
const validate = ajv.compile(schema);
const valid = validate(res.body);
if (valid) console.log('Valid!');
else throw new Error('Invalid: ' + ajv.errorsText(validate.errors));
});
});
或者:
it('should receive expected response for each parameter group', async () => {
const res = await request(baseURL).get(endPointExtensions[0]);
const validate = ajv.compile(schema);
const valid = validate(res.body);
if (valid) console.log('Valid!');
else throw new Error('Invalid: ' + ajv.errorsText(validate.errors));
});