Sac*_*aka 5 karma-jasmine angular
我们如何Observable.fromEvent使用茉莉花测试
@ViewChild('d')
private inputDatePicker: NgbInputDatepicker;
this.subscription = Observable.fromEvent(document, 'click').subscribe((event: KeyboardEvent) => {
if (!this.eRef.nativeElement.contains(event.target)) {
this.inputDatePicker.close();
}
});
ngOnDestroy() {
this.subscription.unsubscribe();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用ngb-date-picker并且正在使用fromevent以捕获文档单击并关闭日期选择器
我认为,在这种情况下,您最好的猜测是首先不将文档作为全局文件获取,而是将其注入到组件/指令/可注入文件中(角度提供了一种使用-> @Inject(DOCUMENT)进行提供的方法)。在这一点上,您可以通过自己的实现对其进行模拟。从那里您将这样的方法添加到您的模拟中
{
addEventListener: jasmine.createSpy('addEvent').and.callFake((eventName: string, cb: () => void) => {
imageListeners[eventName] = cb;
}),
removeEventListener: jasmine.createSpy('removeEvente').and.callFake((eventName: string) => {
delete imageListeners[eventName];
})
}
Run Code Online (Sandbox Code Playgroud)
(适合您的情况的ofc,这只是我为类似情况编写的一些代码)
以及何时需要触发您的方法
addEventListener.calls.argsFor
Run Code Online (Sandbox Code Playgroud)
等等。我在假设您使用茉莉花作为测试套件的前提下编写了此答案,但应该与其他套件相似,只是方法有所不同。希望能帮助到你 :)
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |