【问题标题】:AngularJS unit testing error when using clientWidth使用clientWidth时AngularJS单元测试错误
【发布时间】:2014-10-05 13:19:49
【问题描述】:

在我的代码中有一行:

var contentWidth = angular.element(document.querySelector('.content'))[0].clientWidth;

在运行应用程序时运行良好,但在单元测试时出现错误:

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

如何解决这个问题?

【问题讨论】:

  • 猜测这是因为在运行单元测试时没有构建 DOM。尝试使用您需要的元素构建一个模拟 DOM。
  • 不太清楚如何做到这一点......
  • 您是否将已编译的元素附加到文档中?否则,document.querySelector() 将无法找到它。

标签: angularjs unit-testing jasmine karma-jasmine jqlite


【解决方案1】:

在运行测试时附加 DOM 或模拟 document.querySelector 和 angular.element 以防您不需要它们。

请记住在测试完成后删除 angular 元素上的 mock/spy,因为它会干扰在内部使用它的 jasmine 框架。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 2013-05-27
    • 1970-01-01
    • 2023-03-10
    • 2013-07-11
    相关资源
    最近更新 更多