Jest 测试框架中如何断言 Promise 的 resolved/rejected 状态?

阅读时长 3 分钟读完

前言

在前端开发中,我们经常需要测试异步代码,比如 Promise。Jest 是一个流行的 JavaScript 测试框架,它提供了一系列的工具来方便我们进行测试。在 Jest 中,我们可以使用 expect 来断言一个 Promise 的 resolved/rejected 状态。本文将介绍 Jest 中如何进行这种断言,并提供一些示例代码。

断言 Promise 的 resolved 状态

在 Jest 中,我们可以使用 .resolves 来断言一个 Promise 的 resolved 状态。下面是一个示例:

在这个示例中,我们创建了一个 Promise,并使用 .resolves 来断言它的 resolved 状态。我们期望这个 Promise 的 resolved 值为 'success'。如果 Promise 的 resolved 值不为 'success',这个测试就会失败。

断言 Promise 的 rejected 状态

在 Jest 中,我们可以使用 .rejects 来断言一个 Promise 的 rejected 状态。下面是一个示例:

在这个示例中,我们创建了一个 Promise,并使用 .rejects 来断言它的 rejected 状态。我们期望这个 Promise 的 rejected 值为 'error'。如果 Promise 的 rejected 值不为 'error',这个测试就会失败。

使用 async/await 进行断言

除了使用 .resolves.rejects,我们还可以使用 async/await 来进行断言。下面是一个示例:

在这个示例中,我们使用 async/await 来等待 Promise 的 resolved 状态。然后我们使用 expect 来断言 resolved 值是否为 'success'。如果不是,这个测试就会失败。

总结

在 Jest 中,我们可以使用 .resolves.rejects 来断言 Promise 的 resolved/rejected 状态。我们还可以使用 async/await 来进行断言。这些工具可以方便我们进行异步代码的测试。希望本文对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65d93ba01886fbafa46cdde8

纠错
反馈