1

このディレクティブが与えられた場合:

angular.module(moduleName).
directive("dir1", function() {
      return {
        restrict: "AE",        
        scope: {
            myvar: '='
        },
        templateUrl: "app/directives/dir1.html",
        link: function (scope, element, attrs) {
            scope.myvar = "Hello";
        }
      }
});

このテンプレートを使用するとdir1.html:

<span class="myclass">{{myvar}}</span>

私は単体テストをしようとしています:

fdescribe("dir1 Directive", function() {

    var scope,element;

    beforeEach(module(moduleName));
    beforeEach(module('app/directives/dir1.html'));

    beforeEach(inject(function ($templateCache,$rootScope,$compile) {
        var formElement = angular.element('<div dir1></div>');
        scope = $rootScope.$new();
        element = $compile(formElement)(scope);
        scope.$digest();
    }));


    it("should have content", function() {
        expect(element.find('class')).toEqual('myclass');
        expect(element.find('span').text).toEqual('Hello');
    })

});

テストでは、class 属性の値と span 要素のテキストの内容を取得しようとしていますが、次のようになります。

Expected ({ length: 0, prevObject: ({ 0: HTMLNode, length: 1 }), 
  context: undefined, selector: 'class' }) to equal 'myclass'.
        test/directives/dir1.test.js:20:40
        loaded@http://localhost:9876/context.js:151:17
        Expected Function to equal 'Hello'.
        test/directives/dir1.test.js:21:44
        loaded@http://localhost:9876/context.js:151:17

私は何を間違っていますか?

4

1 に答える 1