gpt4 book ai didi

javascript - 用 Jest 测试 promise 链

转载 作者:搜寻专家 更新时间:2023-11-01 04:53:52 25 4
gpt4 key购买 nike

我正在尝试使用 Jest 测试 promises-chain 序列:

someChainPromisesMethod: function() {
async()
.then(async1)
.then(async2)
.then(result)
.catch(error);
}

虽然测试单一 promise 有很好的记录,但不确定什么是测试这种链的正确方法(不确定要做什么 TBO)。让我们假设所有异步都被模拟并且只是在他们的 body 中解决 promise (Promise.resolve)。

所以我需要一些东西来测试整个序列。

最佳答案

您可以使用 jest.fn()模拟实现并检查函数被调用的内容并返回你想要的。您需要模拟函数中的所有 async 函数并返回您想要的内容。

例如

async = jest.fn(() => {
return Promise.resolve('value');
});

async1 = jest.fn(() => {
return Promise.resolve('value1');
});

async2 = jest.fn(() => {
return Promise.resolve('Final Value');
});

你可以在你的测试中使用它作为

it('should your test scenario', (done) => {
someChainPromisesMethod()
.then(data => {
expect(async1).toBeCalledWith('value');
expect(async2).toBeCalledWith('value1');
expect(data).toEqual('Final Value');
done();
});
});

但是,如果您有逻辑,我会展平您的链并分别测试它们,这样您就可以轻松测试所有可能性。

关于javascript - 用 Jest 测试 promise 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36400623/

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