📅  最后修改于: 2023-12-03 15:32:06.856000             🧑  作者: Mango
在这个指南中,我们将学习如何在 Javascript 中使用 Jest 测试 Async 函数是否抛出异常。
Jest 是一个由 Facebook 开发的前端测试框架。它提供了一个简单的测试工具链,包括测试运行环境、断言库、测试运行器和覆盖率报告等。Jest 可以用于测试 Javascript 应用程序、React 应用程序、Node.js 应用程序等。
Async 函数是 ECMAScript 2017 引入的新特性,用于编写异步代码。Async 函数使用 async
关键字定义,并返回一个 Promise 对象。在 Async 函数中,可以使用 await
关键字等待 Promise 对象的解决或拒绝,并返回 Promise 对象的结果。
在 Jest 中,可以使用 toThrow
匹配器来测试函数是否抛出异常。toThrow
匹配器接受一个参数,即期望抛出的异常类型或消息。当测试函数抛出异常时,toThrow
匹配器会返回 true
,否则会返回 false
。
以下是一个示例 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
匹配器,可以方便地在测试中处理异步异常。