在为angular 4 app编写测试用例时,我们遇到了一些问题。
1)当他们有处理HTML标签的方法时,无法创建服务/组件的夹具Textbed对象。
(例如
overlayOn(){document.getElementById(“overlay”)。style.display =“block”; } overlayOff(){document.getElementById(“overlay”)。style.display =“none”; }
)
错误:无法设置未定义的样式。
2)模拟ViewChild(),EventEmitter(),@ Output()和@Input()元素时出现问题。
错误:无法设置undefined的属性。
基本上每当我们在类型脚本代码中处理html标签时,我们在编写测试用例时都会遇到错误。
如果有任何方法可以在测试用例中模拟或设置这些标记,请提供帮助。
答案 0 :(得分:1)
尝试
对于HTML:
<div id="overlay" style="display: none"></div>
js文件:
it('should not display id "overlay"', () => {
let containerElement = fixture.debugElement.query(By.css('#overlay')).nativeElement.style.display;
expect(containerElement).toBe('none');
})