【问题标题】:Angular unit testing error: Error: [$injector:modulerr]角度单元测试错误:错误:[$injector:modulerr]
【发布时间】:2015-05-13 10:20:08
【问题描述】:

我正在使用 angular 1.2.2 和 angular mock 1.3.5。测试我自己的定制服务的测试代码非常简单。

angular.module('factories', [])
   .factory('chimp', ['$log', function($log) {
      return {
         ook: function() {
            $log.warn('Ook.');
         }
      };
       }]);

describe('factories', function() {
   var chimp;
   var $log;

   beforeEach(function() {
      module('factories')
      inject(function(_chimp_, _$log_) {
         chimp = _chimp_;
         $log = _$log_;
      })
       });


   beforeEach();

   describe('when invoked', function() {

      beforeEach(function() {
         chimp.ook();
          });

      it('should say Ook', function() {
         expect("1").to.equal('Ook.');
      });
   });
});

但是,它给了我错误:[$injector:modulerr] 为什么会这样?角度版本不适用于模拟版本?

【问题讨论】:

  • 尝试将您的角度升级到 1.3.x 或将您的角度模拟降级到 1.2.x。
  • 请提供您自己的答案(根据您在下面的评论)或删除此问题。

标签: angularjs angular-mock


【解决方案1】:

我认为您有一些无关的beforeEach 语句。你介意给出整个错误吗?

同时,试试这个:

describe('factories', function() {
   var chimp;
   var $log;

   beforeEach(function() {
      module('factories')
      inject(function(_chimp_, _$log_) {
         chimp = _chimp_;
         $log = _$log_;
      })
   });

   describe('when invoked', function() {
      it('should say Ook', function() {
         chimp.ook();
         expect($log.warn.logs).to.contrail(['Ook.']);
      });
   });
});

另外,请查看此 solution,了解有关测试 $log 的纯 Q/A。

【讨论】:

  • 谢谢。我认为这是因为版本不一致。在我将其更改为 1.2.2 模拟后,它起作用了。
【解决方案2】:

在我将其更改为 1.2.2 模拟后,它起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2023-01-22
    • 1970-01-01
    相关资源
    最近更新 更多