我有一个应该失败的简单测试,但它传递了一个错误。
我的代码:
it('my test', async () => {
const result = await resolvingPromise;
expect(result).to.equal('ok');
async function analyzeData() {
let getData = db.getData(1);
let data = await getData;
expect(data.field).to.equal(null);
}
analyzeData();
});
在这个测试中,首先期望是可以的,但async函数内的期望必定会失败,但是测试会返回我传递但是我看到了这个错误:
UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): AssertionError: expected Fri, 02 Mar 2018 09:47:06 GMT to equal null
(node:295) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
我怎样才能以这种方式处理拒绝? 或者我需要在测试中更改我的异步功能? 这样做的好方法是什么?
答案 0 :(得分:2)
使用当前代码,立即从测试函数返回ISize size = new SizeFromImage(imgFilePath);
size.width();
size.hight();
,这意味着mocha继续运行而不等待undefined
承诺解析。这导致成功的测试,然后是稍后的未处理拒绝,而不是等待和测试失败。
analyzeData