我是Angular JS的Jasmine BDD测试的新手 - 任何人都可以告诉我一个简单的测试用例
我的指示
var app = angular.module('gls', []);
app.directive('changeBg', function() {
return {
restrict: 'A',
link: function($scope, element, attrs) {
element.bind('click', function(){
element.css('background','red');
});
}
};
});
标记
<body ng-app="gls">
<a href='#' change-bg>Test link 1</a>
</body>
答案 0 :(得分:1)
通常,为了测试指令,您需要创建一个作用域,使用该指令编译一个简单的模板,然后执行一些操作。在这种情况下,操作是单击(据我所知,这需要jQuery)。
describe('Testing the changeBg directive', function() {
var element = null;
//you need to indicate your module in a test
beforeEach(module('plunker'));
beforeEach(inject(function($rootScope,$compile) {
var scope = $rootScope.$new();
var template = '<span change-bg></span>';
element = $compile(template)(scope);
element.click(); // Requires jQuery
}));
it('should be red after a click', function() {
expect(element.css('background')).toEqual('red');
});
});
您可以在this plunkr中看到它。