重置ajax模拟调用会计入jest测试

时间:2016-03-05 12:05:46

标签: 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]在每种情况下,主要是因为我犯了拼写错误或忘记在模拟中增加电话号码。

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

1 个答案:

答案 0 :(得分:2)

试试这个:

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

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