在 Angular 单元测试中通过 class 使用 element.find()
Using element.find() by class in Angular Unit testing
当运行这个测试时,我一直收到错误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 通过 id
和 class
查找元素?
这是因为 angular-jqlite(与 jquery 本身相比非常轻量级的库)find
仅限于仅按标签名称查找。您可以使用 element.querySelector(All)
并将其包装在 angular.element
中。即
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() - Limited to lookups by tag name
当运行这个测试时,我一直收到错误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 通过 id
和 class
查找元素?
这是因为 angular-jqlite(与 jquery 本身相比非常轻量级的库)find
仅限于仅按标签名称查找。您可以使用 element.querySelector(All)
并将其包装在 angular.element
中。即
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() - Limited to lookups by tag name