Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模拟单元测试的角度引导ui指令_Javascript_Angularjs_Unit Testing - Fatal编程技术网

Javascript 模拟单元测试的角度引导ui指令

Javascript 模拟单元测试的角度引导ui指令,javascript,angularjs,unit-testing,Javascript,Angularjs,Unit Testing,我正在尝试编写一个单元测试,以确保指令正确工作 该指令的模板包括,所以我希望能够模拟它 说我应该能够通过使用$compileProvider创建同名的新指令,并将高优先级和终端设置为true来模拟指令: beforeEach(function() { inject([ '$compileProvider', function($compileProvider) { $compileProvider.directive('datePickerOptions', {

我正在尝试编写一个单元测试,以确保指令正确工作

该指令的模板包括,所以我希望能够模拟它

说我应该能够通过使用
$compileProvider
创建同名的新指令,并将高
优先级
终端
设置为true来模拟指令:

beforeEach(function() {
  inject([
    '$compileProvider',
    function($compileProvider) {
      $compileProvider.directive('datePickerOptions', {
        priority: 100,
        terminal: true,
        template: ''
      });

    $compileProvider.directive('datePickerPopup', {
      priority: 100,
     template: ''
    });
  }]);
});
它还说,您可以通过如下方式重写它们的工厂函数来模拟指令:

beforeEach(module(function($provide) {
  $provide.factory('datePickerOptionsDirective', function() {
      return {};
  });
  $provide.factory('datePickerPopupDirective', function() {
      return {};
  });
}));

这两种方法都不适合我。我正在使用Karma单元测试。有什么想法吗?

这是我的错误。将其指令列为
datepicker
datepickerpoup
datepickerOptions
。错误是资本化问题。

我最近了解了您描述的第二种方法,并借此机会对其进行了测试。我能够使用$PROFECT服务替换指令工厂。你有什么错误吗?你想测试什么?你是怎么做到的?有没有可能,你可以进行一次测试?@Scorpion Prince你说得对,使用
$provide
确实有效。我的错误是Angular UI Bootstrap将指令定义为
datepicker
,而不是我刚才所说的
datepicker
。很抱歉。