gpt4 book ai didi

javascript - javascript CustomEvent 的 jasmine 单元测试

转载 作者:行者123 更新时间:2023-12-02 15:58:56 24 4
gpt4 key购买 nike

如何测试 CustomEvent 是否在 jasmine 中调度?当我尝试运行以下代码时,出现错误:“ReferenceError:找不到变量:CustomEvent”。

function testCustomEvent() {
window.dispatchEvent(new CustomEvent('myCustomEvent', {
detail: 'foo'
}));
}

describe('testCustomEvent', function() {
it('dispatches myCustomEvent', function() {
var eventSpy = jasmine.createSpy();
window.addEventListener('myCustomEvent', eventSpy);

testCustomEvent();

expect(eventSpy).toHaveBeenCalledWith('foo');
});
});

最佳答案

未满足预期,因为 eventSpy 是使用 {detail: 'foo'}

调用的

此外,传递的参数是一个新的事件对象,其中包含发送到事件构造函数的参数值。所以它永远不是同一个对象。您必须使用partial matcher来强制执行深度部分等于。如果您使用的是 Jasmine 2.0

expect(eventSpy).toHaveBeenCalledWith(jasmine.objectContaining({
detail: 'foo'
}));

或者有一个headache如果您使用的版本低于 2.0

关于javascript - javascript CustomEvent 的 jasmine 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31374066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com