前言
在前端开发中,我们经常需要测试异步代码,比如 Promise。Jest 是一个流行的 JavaScript 测试框架,它提供了一系列的工具来方便我们进行测试。在 Jest 中,我们可以使用 expect 来断言一个 Promise 的 resolved/rejected 状态。本文将介绍 Jest 中如何进行这种断言,并提供一些示例代码。
断言 Promise 的 resolved 状态
在 Jest 中,我们可以使用 .resolves
来断言一个 Promise 的 resolved 状态。下面是一个示例:
test('test resolves', () => { return expect(Promise.resolve('success')).resolves.toBe('success'); });
在这个示例中,我们创建了一个 Promise,并使用 .resolves
来断言它的 resolved 状态。我们期望这个 Promise 的 resolved 值为 'success'。如果 Promise 的 resolved 值不为 'success',这个测试就会失败。
断言 Promise 的 rejected 状态
在 Jest 中,我们可以使用 .rejects
来断言一个 Promise 的 rejected 状态。下面是一个示例:
test('test rejects', () => { return expect(Promise.reject('error')).rejects.toBe('error'); });
在这个示例中,我们创建了一个 Promise,并使用 .rejects
来断言它的 rejected 状态。我们期望这个 Promise 的 rejected 值为 'error'。如果 Promise 的 rejected 值不为 'error',这个测试就会失败。
使用 async/await 进行断言
除了使用 .resolves
和 .rejects
,我们还可以使用 async/await 来进行断言。下面是一个示例:
test('test async/await', async () => { const result = await Promise.resolve('success'); expect(result).toBe('success'); });
在这个示例中,我们使用 async/await 来等待 Promise 的 resolved 状态。然后我们使用 expect 来断言 resolved 值是否为 'success'。如果不是,这个测试就会失败。
总结
在 Jest 中,我们可以使用 .resolves
和 .rejects
来断言 Promise 的 resolved/rejected 状态。我们还可以使用 async/await 来进行断言。这些工具可以方便我们进行异步代码的测试。希望本文对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65d93ba01886fbafa46cdde8