javascript - 在 Jest 测试中重置 ajax 模拟调用计数

标签 javascript jquery ajax jasmine jestjs

我的测试结构如下所示,我的代码使用 ajax 调用,所以我在模拟 Jest tutorial 中表示:

describe('it behavior', function() {
  it('is as it is', function() {
    jQuery.ajax.mock.calls[0][0].success({
      data: []
    });
    ...
  });
  it('is is not as it was', function() {
    jQuery.ajax.mock.calls[1][0].success({
      data: [1, 2, 3]
    });
    ...
  });
});

最让我困扰的是 jQuery.ajax.mock.calls[X][0] 在每种情况下,主要是因为我打错了字或者忘记在 mock 中增加调用编号。

在这种情况下,是否可以在 afterEach 回调或测试组织的某种模式中重置模拟调用计数?最好没有任何额外的测试依赖项。

最佳答案

试试这个:

describe('something', function() {
  beforeEach(function() {
    jQuery.ajax = jest.genMockFunction()
  })

  it('does something', function() {
    // do something
  })
}

关于javascript - 在 Jest 测试中重置 ajax 模拟调用计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35813890/

相关文章:

JavaScript 和辅助功能

javascript - 替换具有非文本节点同级的文本节点

javascript - Gatsby + Hotjar : Env variables for Hotjar-Id & Hotjar-Snippet Version?

php - 带有标题 View 的 Angular ng-repeat

javascript - Jquery 延迟未按预期运行

javascript - JQuery Mobile 单击时将所选选项复制到其他下拉列表

php - 在等待用户输入时停止

javascript - Onclick 将 url 更改为之前的 url

javascript - 使用 .show/.hide 和 .next 导致问题

javascript - 有没有办法在页面上后退或前进时触发任意 JavaScript?