控制器代码:
var element = document.getElementById('#elementId');
element.style.display = "block";
执行单元测试(在控制器中执行上述代码)时,它失败并显示以下错误:
TypeError:无法读取null的属性“样式” ChildScope。$ scope.openTab
如何在单元测试中获取文档/ DOM?
答案 0 :(得分:1)
您可以尝试在以下代码的帮助下创建模拟文档元素:
var mockedDocElement = document.createElement('div');
document.getElementById = jasmine.createSpy('*<<yourElementId>>*').andReturn(mockedDocElement );
通过这种方式,每次调用 document.getElementById 时,都会返回一个虚拟元素,因此,您可以在测试方法中继续进行操作,而不会出现任何此类异常。