我有一个指令,其中控制器被定义为指令定义的一部分。
(function(){
var app = angular.module('app', []);
app.directive('test', function(){
return {
restrict: 'E',
templateUrl: 'test.html',
controller: ['$scope', function ($scope){...*set of functions*......}],
controllerAs:'reportCtrl',
link:function(Attrs){
}
};
});
})();
我需要为这组函数编写单元测试。我是业力测试的新手,我没有为这种代码找到太多资源。我几乎尝试了所有可能的方法。有人可以帮我写这个单元测试吗
答案 0 :(得分:0)
这是一个例子。请参阅演示http://plnkr.co/edit/zK9MNkvNpHF2UY9BgMKz?p=preview
我所做的是编译指令并调用摘要周期。 在设置之后,它与常规控制器几乎相同。
describe('Auth Service Tests', function() {
var element;
var isolated;
var $scope;
beforeEach(module('MyApp'));
beforeEach(inject(function($rootScope, $compile, $templateCache) {
// Imports test.html
var templateUrl = 'test.html';
var req = new XMLHttpRequest();
req.onload = function() {
$templateCache.put(templateUrl, this.responseText);
};
req.open('get', templateUrl, false);
req.send();
$scope = $rootScope.$new();
element = '<test></test>';
// Creates the directive.
element = $compile(element)($scope);
// activates the $digest cycle.
$scope.$apply();
}));
it('tests the transclude', function() {
expect($scope.apple).toEqual('world');
expect($scope.getApple()).toEqual('world');
});
});