Javascript Jasmine单元测试窗口.onbeforeunload
我正在尝试编写一些单元测试,但都失败了。你能给我建议正确的方法吗Javascript Jasmine单元测试窗口.onbeforeunload,javascript,angularjs,unit-testing,frontend,karma-jasmine,Javascript,Angularjs,Unit Testing,Frontend,Karma Jasmine,我正在尝试编写一些单元测试,但都失败了。你能给我建议正确的方法吗 show(contactId:string、phoneNumber:string、contactType:string、section:string、memberId:string){ 此.$window.onbeforeunload=()=>“”; $('.disabledcalldialog')。在(“单击”,e=>{ 此.window.alert('请关闭呼叫对话框并重试'); e、 预防默认值(); });您是否尝试过:
show(contactId:string、phoneNumber:string、contactType:string、section:string、memberId:string){
此.$window.onbeforeunload=()=>“”;
$('.disabledcalldialog')。在(“单击”,e=>{
此.window.alert('请关闭呼叫对话框并重试');
e、 预防默认值();
});
您是否尝试过:
$window.trigger('onbeforeunload');
而不是:
$(window).trigger('onbeforeunload');
为您服务:
setUpBeforeunload(): void {
window.addEventListener('beforeunload', this.closeConnection);
}
并使用Jasmine进行单元测试:
describe('setUpBeforeunload', () => {
it('should set up window eventListener', () => {
spyOn(window, 'addEventListener');
service.setUpBeforeunload();
expect(window.addEventListener).toHaveBeenCalledWith('beforeunload', service.closeConnection);
});
it('should call closeConnection()', () => {
spyOn(service, 'closeConnection');
service.setUpBeforeunload();
window.dispatchEvent(new Event('beforeunload'));
expect(service.closeConnection).toHaveBeenCalled();
});
});