我正在使用 videogular 并创建了一个需要 videogular 指令的指令。
这一切都很好,但我不想对我的指令进行单元测试。
我想模拟 videogular 指令,以便我可以通过 API 操作数据返回。
然而,我的指令总是选择 videogular 的具体实现。
我试图模拟下面指令的视频模块实现,但没有运气。然后,我像通常进行单元测试一样模拟我自己的模块。
beforeEach(angular.mock.module('com.2fdevs.videogular'));
beforeEach(angular.mock.module('com.2fdevs.videogular'),function($provide,$controllerProvider){
videogular = function(){
return {
template: '<video class="test"></video>',
transclude: true
}
};
$controllerProvider.register('vgController', function(_$scope_){
$scope = _$scope_;
$scope.totalTime = 100;
});
$provide.factory('videogularDirective', videogular);
});
我试图以同样的方式将它注入到我自己的模块中,结果相同。
我怎样才能让它使用我的模拟而不是具体的实现?
我现在有
beforeEach(angular.mock.module('com.2fdevs.videogular'));
beforeEach(angular.mock.module('com.2fdevs.videogular'),function($provide,$controllerProvider,$compileProvider){
videogular = function(){
return {
template: '<video class="test"></video>',
transclude: true
}
};
$provide.factory('videogularDirective', videogular);
$compileProvider.directive('videogularDirective', videogular);
});
beforeEach(angular.mock.module('irisApp'));
beforeEach(angular.mock.module('irisApp', function ($provide) {
$provide.constant('LoggingService', require('../../../server/mocks/LoggingService.mock'));
$provide.constant('run', {});
}));
beforeEach(angular.mock.inject(function (_$compile_, _$rootScope_) {
$rootScope = _$rootScope_;
$compile = _$compile_;
}));
但它仍然使用具体指令。