【发布时间】:2019-11-25 14:39:26
【问题描述】:
我正在尝试为使用 MediaQueryList 的组件编写单元测试。我正在努力覆盖一行,它将一个箭头函数分配给一个变量。
我尝试监视函数内部的方法,但我收到一个错误,即从未调用过该方法。
我的班级:
export class AppComponent implements OnDestroy {
mobileQuery: MediaQueryList;
_mobileQueryListener: () => void;
constructor(
private changeDetectorRef: ChangeDetectorRef,
private media: MediaMatcher
) {
this.mobileQuery = this.media.matchMedia('(max-width: 1000px)');
this._mobileQueryListener = () => this.changeDetectorRef.detectChanges();
this.mobileQuery.addListener(this._mobileQueryListener);
}
ngOnDestroy(): void {
this.mobileQuery.removeListener(this._mobileQueryListener);
}
}
我的测试:
it('should setup the media query', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.componentInstance;
expect(app.mobileQuery).toBeTruthy();
expect(app._mobileQueryListener).toEqual(/* ??? */);
});
我希望实现 100% 的代码覆盖率,为此,我需要覆盖 _mobileQueryListener 的分配。有什么想法吗?
【问题讨论】:
标签: angular typescript jasmine karma-jasmine istanbul