2015-07-07 21 views
8

Khi chạy thử nghiệm này, tôi tiếp tục nhận được lỗi Expected undefined to be true.Sử dụng element.find() bởi lớp trong góc Đơn vị kiểm tra

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); 
}); 

Làm thế nào tôi có thể sử dụng jqlite để tìm một phần tử bằng cách idclass?

+0

Bạn không thể. jqLite không hỗ trợ bộ chọn – Phil

Trả lời

9

Đó là vì angular-jqlite (thư viện rất nhẹ khi so sánh với jquery) find bị giới hạn chỉ tìm kiếm theo tên thẻ. Bạn có thể sử dụng element.querySelector(All) và bọc nó trong angular.element. tức là

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

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

See documentation

find() - Giới hạn tra cứu theo tên thẻ

Các vấn đề liên quan