gpt4 book ai didi

javascript - 单元测试失败的 promise

转载 作者:太空宇宙 更新时间:2023-11-04 01:47:02 26 4
gpt4 key购买 nike

我是异步编程新手。我正在为以下示例代码编写测试用例。

someAsync(text) {
try {
//do something and resolve result
return Promise.resolve(result);
} catch (err) {
return Promise.reject(new Error(`Failure ${err}`));
}
}

我正在使用以下代码对其进行测试:

it('should throw error when called', (done) => {
const mymodule = new MyModule(args);
mymodule.someAsync('something that causes failure').catch((err) => {
expect(err).to.exist;
expect(err.message).to.contains('This should pass');
done(err);
});
});

此测试用例失败,断言通过,然后再次完成后抛出错误。请告诉我哪里出错了?

最佳答案

done(err) 使规范失败。由于这是预期的错误,因此它不应该不符合规范,而应该是 done()

Mocha 不需要 done 来处理 Promise,Promise 可以从规范返回。

可能应该是:

it('should throw error when called', () => {
const mymodule = new MyModule(args);
return mymodule.someAsync('something that causes failure').catch((err) => {
expect(err).to.exist;
expect(err.message).to.contain('This should pass');
});
});

此外,从列出的代码中并不明显看出 expect(err.message).to.contain('This should pass') 断言是正确的。

关于javascript - 单元测试失败的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51049149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com