gpt4 book ai didi

javascript - 当 promise 在断言期间被拒绝时,业力通过测试

转载 作者:行者123 更新时间:2023-11-29 10:34:23 24 4
gpt4 key购买 nike

如果 promise 本身在 'does fail' 测试中被拒绝,那么测试将如我所料失败。如果断言失败/抛出错误/ promise 在 promise 的“then”中被拒绝,我会记录说 ERROR: 'Unhandled promise rejection' 并且测试仍然通过。我如何让它在拒绝时失败而不是记录拒绝未处理?

import { expect } from 'chai';

describe.only('What?', () => {
const e = new Error('NOPE');

it('does fail', () => Promise.reject(e));

it('should fail when rejected', () => {
const promise = new Promise(r => r());

promise.then(() => Promise.reject(e));

return promise;
});

it('should fail when thrown, then caught then rejected', () => {
const promise = new Promise(r => r());

promise
.then(() => { throw e; })
.catch(() => Promise.reject('huh'));

return promise;
});

it('should fail/reject when thrown, then caught then rethrown', () => {
const promise = new Promise(r => r());

promise
.then(() => { throw e; })
.catch(er => { throw er; });

return promise;
});

it(`doesn't matter if I expect`, () => {
const promise = new Promise(r => r());

promise.then(() => {
expect(1).to.eq(2);
});

return promise;
});
});

然后报告...

START:
What?
✖ does fail
✔ should fail when rejected
ERROR: 'Unhandled promise rejection', Error{stack: undefined}
✔ should fail when thrown, then caught then rejected
ERROR: 'Unhandled promise rejection', 'huh'
✔ should fail/reject when thrown, then caught then rethrown
ERROR: 'Unhandled promise rejection', Error{stack: undefined, line: 47567, sourceURL: 'http://localhost:9876/base/test/test_index.js?7f696b0b50c0a51c7a2fa5278582072b20241a3b'}
✔ doesn't matter if I expect
ERROR: 'Unhandled promise rejection', AssertionError{message: 'expected 1 to equal 2', showDiff: true, actual: 1, expected: 2, stack: 'AssertionError@http://localhost:9876/base/test/test_index.js?7f696b0b50c0a51c7a2fa5278582072b20241a3b:39222:25

最佳答案

您必须返回 then(...) 的返回值,而不是您创建的第一个 promise。

关于javascript - 当 promise 在断言期间被拒绝时,业力通过测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39233264/

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