问题描述
我尝试编写单元测试断点观察器。但没有涵盖阳性条件
isSmallScreen: Observable<BreakpointState> = this.breakpointObserver.observe('(max-width: 767px)');
openEntityDetailDialog(): void {
this.entityCreationComponent.close();
this.dialogRef = this.dialog.open(HomeBusinessEntityDetail,{
maxWidth: '767px',disableClose: true
});
const dialogSubscription = this.isSmallScreen.subscribe(result => {
if (result.matches) {
this.dialogRef.updateSize('100%','100%');
} else {
this.dialogRef.updateSize('560px');
}
});
this.dialogRef.afterClosed().subscribe(result => {
dialogSubscription.unsubscribe();
});
}
帮我为该行编写单元测试
const dialogSubscription = this.isSmallScreen.subscribe(result => {
if (result.matches) {
this.dialogRef.updateSize('100%','100%');
}
谢谢。
解决方法
您可以尝试这样的事情
it('should update the dialog size',() => {
component.isSmallScreen = of({ matches: true });
const spy: Jasmine.Spy = spyOn(component.dialogRef,'updateSize'); // considering you have mocked the dialogRef in your test
component.openEntityDetailDialog();
expect(spy).toHaveBeenCalledWith('100%','100%');
});