角度单位测试错误:错误:[$ injector:modulerr]

时间:2014-12-16 02:01:23

标签: angularjs angular-mock

我使用角度1.2.2和角度模拟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] 为什么会这样?角度版本不适用于模拟版本吗?

2 个答案:

答案 0 :(得分: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 :(得分:0)

在我将它改为1.2.2嘲讽之后,它起作用了。