📜  jest test tothrow on async 函数 - Javascript (1)

📅  最后修改于: 2023-12-03 15:32:06.856000             🧑  作者: Mango

Jest Test ToThrow on Async Function - Javascript

在这个指南中,我们将学习如何在 Javascript 中使用 Jest 测试 Async 函数是否抛出异常。

Jest

Jest 是一个由 Facebook 开发的前端测试框架。它提供了一个简单的测试工具链,包括测试运行环境、断言库、测试运行器和覆盖率报告等。Jest 可以用于测试 Javascript 应用程序、React 应用程序、Node.js 应用程序等。

Async 函数

Async 函数是 ECMAScript 2017 引入的新特性,用于编写异步代码。Async 函数使用 async 关键字定义,并返回一个 Promise 对象。在 Async 函数中,可以使用 await 关键字等待 Promise 对象的解决或拒绝,并返回 Promise 对象的结果。

ToThrow

在 Jest 中,可以使用 toThrow 匹配器来测试函数是否抛出异常。toThrow 匹配器接受一个参数,即期望抛出的异常类型或消息。当测试函数抛出异常时,toThrow 匹配器会返回 true,否则会返回 false

测试 Async 函数抛出异常示例

以下是一个示例 Async 函数:

async function fetchData() {
  return await fetch('https://example.com/data.json');
}

我们要测试这个 Async 函数是否能够抛出异常。在 Jest 中,我们可以编写如下测试用例:

test('fetchData throws error', async () => {
  await expect(fetchData()).rejects.toThrow('Failed to fetch');
});

在上面的测试用例中,我们使用 expect 函数来测试 fetchData 函数是否会抛出异常。使用 rejects 匹配器,表示我们期望 fetchData 函数返回一个拒绝状态的 Promise 对象。使用 toThrow 匹配器,表示我们期望异常消息包含 'Failed to fetch'

如果 fetchData 函数抛出异常,测试用例会通过。否则,测试用例会失败。

结论

在这个指南中,我们学习了如何在 Jest 中测试 Async 函数是否抛出异常。使用 rejects 匹配器和 toThrow 匹配器,可以方便地在测试中处理异步异常。