gpt4 book ai didi

angular - 将模拟 DOM 事件传递给 Angular 中的组件方法以进行单元测试

转载 作者:太空狗 更新时间:2023-10-29 18:12:29 25 4
gpt4 key购买 nike

我正尝试在我的一个组件中测试一种方法,如下所示:

toggle(event: Event): void {
event.stopPropagation();
this.isCollapsed = !this.isCollapsed;
}

我找不到将事件对象传递给单元测试用例中的方法的方法,例如:

test('it should call stop propagation when toggled', () => {
testHostComponent.toggleLineBreakDown(mockEventGoesHere, 0);
});

最佳答案

您可以测试 preventDefault 是否已通过 Jasmine Spy 调用。

在使用 SpyOn 方法之前,您必须创建正在监听的事件。 (在下面的示例中,它是一个“点击”事件)。创建事件和 spy 后,您需要将事件分派(dispatch)给元素。

举个例子:

const event = new MouseEvent('click'); 
spyOn(event, 'preventDefault');

element.dispatchEvent(event);
expect(event.preventDefault).toHaveBeenCalled();

希望这对您有所帮助!

关于angular - 将模拟 DOM 事件传递给 Angular 中的组件方法以进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51521775/

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