【发布时间】:2017-04-10 11:19:32
【问题描述】:
在一个组件中,我有一个需要为其编写测试的函数。
toggleDropdown($event: MouseEvent): void {
$event.preventDefault();
$event.stopPropagation();
this.status.isopen = !this.status.isopen;
}
我怎样才能“存根”$event 或更准确地说是MouseEvent(例如点击案例)并测试preventDefault() 和stopPropagation() 这两种方法是否被正确调用?
以及如何触发这个方法,包括正确的$event?
我很难为这个方法定义一个合适的测试用例。我试过spyOn$event,但它不能正常工作,因为找不到名字$event
【问题讨论】:
-
我目前无法验证,但您可以尝试:spyOn(MouseEvent.prototype, 'preventDefault');结合手动创建的 MouseEvent。我将它与自定义 DI 测试一起使用。
-
您对如何手动创建“正确”且相关的 MouseEvent 有任何提示吗?
-
如果我理解正确,你需要类似这样的东西:stackoverflow.com/questions/11529158/…
标签: angular typescript jasmine karma-jasmine