javascript - 访问另一个函数中的 jest.fn 函数

标签 javascript jestjs

我在编写 Jest 单元测试用例时遇到以下情况:

elasticsearch.Client = jest.fn().mockImplementation(() => {
      return {
        update: jest.fn().mockImplementation(() => {
            return {}
        })
     }
});

现在,我想对更新函数调用进行一些预期。如何在测试用例中访问此处的更新功能。

我可以访问elasticsearch.Client及其模拟变量作为elasticsearch.Client.mock。但是我如何才能访问类似的更新功能呢?

最佳答案

您可以尝试将 update 的模拟函数移至外部作用域:

const updateMock = jest.fn().mockImplementation(() => {
  return {}
});

elasticsearch.Client = jest.fn().mockImplementation(() => {
  return {
    update: updateMock
  }
});

然后您可以在断言中使用updateMock。例如:

expect(updateMock).toHaveBeenCalled()

关于javascript - 访问另一个函数中的 jest.fn 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60108400/

相关文章:

javascript - React Jest 示例不起作用

javascript - 如何使用 axios/jest 测试失败的请求

javascript - 如何在 Jest 中模拟 AbortController

javascript - 在 react-testing-library 中运行单元测试时出现意外标识符

javascript - unslider滑动图片问题

javascript - 匹配多个相互依赖的可选字符

javascript - 检测 Scroll 何时到达页面的底部 [没有 jQuery]

javascript - 是否有非 CSS 方式来垂直包裹一列框?

javascript - 如何重置测试之间导入的模块

javascript - 如何使用 Jquery 连接现有属性值的新值?