测试Angular服务是否已初始化

前端之家收集整理的这篇文章主要介绍了测试Angular服务是否已初始化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用Karma-Jasmine测试我的Angular服务,我需要确保在服务初始化后调用了loadApp函数.测试它的最佳方法是什么?

import { Injectable,NgZone } from '@angular/core';

@Injectable()
export class GdlService {
  appName = 'myAppName';

  constructor(
    private ngZone: NgZone,) {
    this.ngZone = ngZone;
    this.loadApp(this.appName);
  }


  private loadApp(appName) {
    this.ngZone.runOutsideAngular(() => {
      // ...some logic
    });
  }
}

解决方法

它可以像任何其他功能一样进行测试.考虑到loadApp是原型方法,它可以在类原型上存根或监视:

it('',() => {
  spyOn(<any>GdlService.prototype,'loadApp');
  const gdl = TestBed.get(GdlService);
  expect(gdl['loadApp']).toHaveBeenCalledWith('myAppName');
});

猜你在找的Angularjs相关文章