javascript - Jest - 测试 try/catch

标签 javascript testing jestjs

我正在尝试测试此类方法:

get () {
  try {
    return 'value'
  } catch (e) {
    return 'value2'
  }
}

与:

test('the get method retrieves value', () => {
  const value = MyClass.get()
  expect(value).toBe('value')
})

我的测试覆盖率显示我已经测试了方法的 try 部分,但没有测试 catch 部分。

如何覆盖 catch 部分?

最佳答案

您可以通过将函数调用包装在您的测试AND 中的try catch block 中来测试catch 部分并期待一个断言。在不期望断言的情况下,不会导致错误的测试运行仍然会通过。

https://jestjs.io/docs/en/tutorial-async#error-handling

test('the fetch fails with an error', async done => {
  expect.assertions(1);
  try {
    await fetchData();
  } catch (e) {
    expect(e).toMatch('error');
  }
});

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

相关文章:

javascript - 如何从 Firebase 存储中删除 Vue.js 组件图像?

javascript - 检查 jQuery 是否已加载 Javascript

facebook - 发给 Facebook 测试用户的电子邮件去哪里了?

reactjs - 测试时,导致 React 状态更新的代码应该包装到 act(...) 中 - 使用简单的 React-native 嵌套屏幕/组件和 jest axios

react-native - 如何测试renderItem函数返回<ListItem/>?

Javascript:从 RegEx 声明变量,写入 cookie

javascript - 单击更改按钮文本,延迟问题

typescript - TestCafe - 检查超链接是否有效 - 重定向到外部电子邮件提供商

javascript - Cypress - 等待取消的 XHR 请求

javascript - 模拟模块中除一个函数之外的所有函数