sinon spy 检查函数是否被调用错误

sinon spy check if function has been called error

我正在尝试检查在我的测试中是否调用了一个函数。我在尝试执行此操作时收到错误 TypeError: Cannot read property 'match' of undefined。我已将我的代码设置为在我的函数上使用 sinon.spy(),然后基于此检查 callCountgetMarketLabel 总是 return 一个字符串。下面是我的代码:

beforeEach(() => {
  marketLabelSpy = sinon.spy(getMarketLabel());
}); //please note this is in a describe block but didnt feel it was relevant to post it. marketLabelSpy is pre-defined.

it('should be called', () => {
  expect(marketLabelSpy).to.have.callCount(1);
})

在您的代码中,您正在调用 getMarketLabel 函数,函数调用的结果(它是一个字符串)将用于设置您的间谍。这不符合您的预期。

要在函数上使用 sinon 间谍,只需传递对该函数的引用即可:

beforeEach(() => {
  marketLabelSpy = sinon.spy(getMarketLabel);
});