2

私はジャスミンでこのユニット仕様を持っています:

define(['common/components/directives/directives', 'angular'], function (directives, ng) {

describe('The directives module', function () {

    beforeEach(function () {
        ng.mock.module('directives');
    });

    describe('The tabset directive', function () {
        var scope;
        var elm;

        beforeEach(inject(function($rootScope, $compile) {
            elm =   ng.element('<tabset>' +
                            '<tab data-route="/home" data-title="Home"></tab>' +
                            '<tab data-route="/tournaments" data-title="Tournaments"></tab>' +
                            '<tab data-route="/about" data-title="About"></tab>' +
                        '</tabset>');

            var scope = $rootScope;
            $compile(elm)(scope);
            scope.$digest();
        }));

        it ('should create clickable titles', function () {
            var titles = elm.find('ul li a');

            expect(titles.length).toBe(3);
            expect(titles.eq(0).text()).toBe('Home');
            expect(titles.eq(0).text()).toBe('Tournaments');
            expect(titles.eq(0).text()).toBe('About');
        });

        //it ('should change active tab when clicked', function () {

        //});

    });
});

});

テストit ('should create clickable titles', ...では を使用しようとしまし.find()たが、選択範囲は空になります: LOG: Object{}。これはelmテストに含まれるものです:

LOG: Object{0: 
<ul class="nav nav-tabs ng-scope" ng-transclude="">
    <li data-ng-class="{active: active}" data-route="/home" data-title="Home" class="ng-scope">
        <a href="#/home" class="ng-binding">Home</a>                                       
    </li>
    <li data-ng-class="{active: active}" data-route="/tournaments" data-title="Tournaments" class="ng-scope">
        <a href="#/tournaments" class="ng-binding">Tournaments</a>                                 
    </li>
    <li data-ng-class="{active: active}" data-route="/about" data-title="About" class="ng-scope">                                           
        <a href="#/about" class="ng-binding">About</a>                                     
    </li>
</ul>, length: 1}
4

2 に答える 2

2

el.find()、一連のの子、その子などで要素をel見つけようとします。それ自体であり、要素のみを含む要素を見つけようとしています。また、 では子セレクターを使用できません。代わりにチェーンを使用してください。ulullifindel.find('li').find('a')

于 2013-10-11T11:52:34.403 に答える
2

.findこのようにメソッドを使用することはできません。次のように使用します。

elm.find('a');

または:

elm.find('ul').find('li').find('a');

見てみましょう: http://jsfiddle.net/Khp4R/2/

于 2013-10-11T11:47:36.363 に答える