私が取り組んでいる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
私はそれを間違っていますか?代わりに私がすべきことについて何か考えや提案はありますか?