使用clientWidth时AngularJS单元测试错误

Jul*_*ius 5 unit-testing jasmine angularjs jqlite karma-jasmine

在我的代码中有一行:

var contentWidth = angular.element(document.querySelector('.content'))[0].clientWidth;
Run Code Online (Sandbox Code Playgroud)

它在运行应用程序时工作正常但在单元测试时出现错误:

TypeError: 'undefined' is not an object (evaluating 'angular.element(document.querySelector('.content'))[0].clientWidth')
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

Sha*_*pta 2

运行测试时附加 DOM,或者模拟 document.querySelector 和 angular.element,以防您不需要相同的内容。

请记住在测试完成后删除角度元素上的模拟/间谍,因为它会干扰内部使用该框架的 jasmine 框架。