加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 使用Jasmine进行角度测试无法比较html节点

发布时间:2020-12-17 07:17:14 所属栏目:安全 来源:网络整理
导读:我正在使用Jasmine在Angular中构建指令测试.我有一个小例子测试,看起来像这样: it("should compare html node",inject( function ($compile,$rootScope) { var elm = angular.element('input'); elm = $compile(elm)($scope); $scope.$digest(); console.lo
我正在使用Jasmine在Angular中构建指令测试.我有一个小例子测试,看起来像这样:
it("should compare html node",inject( function ($compile,$rootScope) {
  var elm = angular.element('<input>');
  elm = $compile(elm)($scope);
  $scope.$digest();
  console.log('btn',elm); // output: '<input class="ng-scope">'
  expect(elm).toBe('<input class="ng-scope">');

  expect(elm[0]).toBe('<input class="ng-scope">'); // these also fail
  expect(elm.html()).toBe('<input class="ng-scope">'); // ""
}));

所以我得到了预期的输出到控制台,但Jasmine抱怨错误预期{length:1,0:HTMLNode}为’< input class =“ng-scope”>‘

我也尝试使用elm [0],它给出了相同的错误和elm.html()但只返回一个空字符串.如何正确地将HTML节点与字符串进行比较?

NB我知道这是一个不切实际的测试,但我只是想演示我当前的问题.

所以elm是一个angular.element,它是一个jqLit??e对象.正如您所指出的,您可以使用elm [0]来获取实际的dom元素.然后,您可以通过访问字段.outerHTML来访问节点的html.所以我们最终的解决方案是使用
elm[0].outerHTML

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读