angular - 如何在角度 8 中测试 window.innerWidth 属性?
问题描述
我在 Angular 和 TDD 方面相当新。目前,我正在尝试测试在调整大小事件期间调用它的函数。这是我的以下代码:
header.component.ts
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.scss'],
host: {
'(window:resize)': 'onResize($event)'
}
})
export class HeaderComponent implements OnInit {
isDesktop = window.innerWidth > 768;
menuOpen = false;
constructor() {}
ngOnInit() {}
onResize(event) {
this.isDesktop = event.target.innerWidth > 768;
this.menuOpen = !this.isDesktop && this.menuOpen;
}
}
header.component.ts
describe('HeaderComponent', () => {
let component: HeaderComponent;
let fixture: ComponentFixture<HeaderComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ HeaderComponent,SideMenuComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(HeaderComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
})
it('should trigger onResize method when window is resized', () => {
const spyOnResize = spyOn(component, 'onResize');
window.dispatchEvent(new Event('resize'));
expect(spyOnResize).toHaveBeenCalled();
});
当我运行测试时,它输出测试失败说_<spyOn> : could not find an object to spy upon
。有什么想法或线索可以解决这个问题吗?非常感谢任何帮助谢谢。
解决方案
推荐阅读
- javascript - MVC - jQuery - DataTables 将数组传递给 datatable.js
- javascript - 如何在 React 中更换组件?
- post - 以 Red 发出 POST 请求时如何在标头中使用变量
- html - 波浪顶部div css
- android - 如何回到以前的活动而不是以前活动的片段
- django - 尝试获取 Django imagekit 缩略图时出现 404 错误
- security - GPG 与 SSH 密钥
- haskell - 如何返回给定列表中第 n 对的第二项(Haskell)
- r - R查找最接近(之前)指定日期列的日期
- android - 如何在活动android中加载多个片段