我在我正在开发的 Angular 应用程序中使用 Videogular。我为它编写了一个插件指令,它监听来自 $rootScope 的事件广播,并且,如果正在播放视频,则在广播事件时自动暂停它。
omgYesDirectives.directive('vgAutoPause',
['$rootScope',
function($rootScope) {
return {
restrict: 'E',
require: '^videogular',
link: function($scope, $elem, $attr, $API) {
$rootScope.$on('onGameEnable', onGameEnable);
function onGameEnable(event, data)
{
$API.pause();
}
}
}
}
]);
但我无法弄清楚如何对其进行单元测试。我似乎无法将 Videogular 本身正确地注入到我的测试中。我已经尝试过这方面的变化:
describe('vgAutoPause', function () {
var scope, compile, elm, videogular;
beforeEach(inject(function ($compile, $rootScope, videogularDirective) {
videogular = videogularDirective;
scope = $rootScope.$new();
compile = $compile;
}));
it('should instantiate as an HTML element', function () {
elm = compile('<videogular><vg-auto-pause></vg-auto-pause></videogular>')(scope);
scope.$digest();
expect(elm.html()).toContain('vg-auto-pause');
});
});
但业力一直在抱怨:
Error: [$injector:unpr] Unknown provider: videogularDirectiveProvider <- videogularDirective
我做错了吗?你对我应该做什么有什么想法或建议吗?