如何解决如何在Angular 8中测试ElementRef
我正在从组件中将样式设置为某些div。我的声明是
@ViewChild('listDiv',{ static: false }) listDiv: ElementRef;
// listDiv is an html div element
我将样式设置如下
if ( this.listDiv!== null && this.listDiv!== undefined ) {
this.utility.setDisplay(this.listDiv,'block');
}
setDisplay方法是在实用程序服务中定义的,使用renderer2如下
setDisplay(element: ElementRef,display) {
this.renderer.setStyle(element.nativeElement,'display',display);
}
因此,如果我想测试listDiv
是否具有样式display: block
,应该怎么做?
我尝试了以下操作,但失败了
it('showListDiv',() => {
const HTMLElements = {};
document.getElementById = jasmine
.createSpy('HTML Element')
.and.callFake(ID => {
if (!HTMLElements[ID]) {
const newElement = document.createElement('div');
HTMLElements[ID] = newElement;
}
return HTMLElements[ID];
});
component.showListDiv();
expect(component.listDiv.nativeElement.getAttribute('style')).toBe('display: block;');
});
如果需要,我不确定如何以及如何模拟。谁能建议一种测试elementref的方法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。