所以我熟悉使用 $controller 构造函数模拟 $scope 和控制器的概念
var scope = rootScope.$new();
it('should contain a testVar value at "test var home"', function(){
homeCtrl = $controller('homeCtrl', {
$scope: homeScope,
$rootScope: rootScope
})
expect(homeScope.testVar).toBe('test var home');
})
有没有办法以同样的方式模拟指令?指令及其控制器?
//mock coding
var scope = rootScope.$new();
it('should contain a testVar value at "test var home"', function(){
homeDir = $directive('homeCtrl', {
$scope: homeScope,
$elem: angular.element('<div....</div>'),
$att: {}
$modelViewController: angular.element().controller('ngModel')
})
homeCtrl = homeDir.$getController();
expect(homeScope.testVar).toBe('test var home');
})
该问题旨在针对指令,如何测试它们?如何提取它们的成分?据我所知,如果我在指令上有一个函数,我需要将它附加到一个范围,否则如果它属于指令,那么该函数是不可测试的。所以如果我想在测试期间使用范围如何将范围注入变量?