0

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

4

2 回答 2

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.']);
      });
   });
});

另外,请查看此解决方案以获取有关 testing 的纯 Q/A $log

于 2014-12-16T05:10:17.720 回答
0

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

于 2015-05-13T02:20:08.610 回答