このディレクティブが与えられた場合:
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
私は何を間違っていますか?