要解决这个问题,你可以采取以下步骤:
- 确保你的代码中正确地设置了 Jasmine 的 spy。
- 检查被调用的函数或方法是否正确地触发了事件。
- 确保你的测试中包含了正确的期望。
下面是一个示例代码,演示了如何在 Jasmine 中解决此问题:
// 要测试的函数
function doSomething() {
// 执行一些操作
// 触发一个事件
document.dispatchEvent(new Event('customEvent'));
}
// Jasmine 测试用例
describe('doSomething', () => {
it('应该在调用时触发自定义事件', () => {
// 创建一个 spy 来监视事件的触发
let eventSpy = spyOn(document, 'dispatchEvent').and.callThrough();
// 调用要测试的函数
doSomething();
// 检查事件是否被正确触发了一次
expect(eventSpy).toHaveBeenCalledOnce();
expect(eventSpy).toHaveBeenCalledWith(new Event('customEvent'));
});
});
通过上述步骤,你应该能够解决在 Jasmine 中预期的 spy emit 被调用 0 次的问题。