13

运行此测试时,我不断收到错误消息Expected undefined to be true.

it('should have the right classes', function() {
   // this doesnt work
   expect(element.find('.exampleClass').hasClass('ng-hide')).toBe(true);

   // but this works
   expect(element.find('span').hasClass('ng-hide')).toBe(true);
});

如何使用 jqlite 通过idand查找元素class

4

1 回答 1

13

这是因为 angular-jqlite(与 jquery 本身相比非常轻量级的库)find仅限于通过标签名称查找。您可以使用element.querySelector(All)并将其包装在angular.element. IE

  var elm = element[0];
  expect(angular.element(elm.querySelector('.exampleClass')).hasClass('ng-hide')).toBe(true);

  //Or even
  expect(elm.querySelector('.exampleClass.ng-hide')).toBeDefined();

查看文档

find() - 仅限于按标签名称查找

于 2015-07-07T02:22:11.690 回答