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] なぜこれが起こっているのですか? angularバージョンはmockバージョンでは動作しませんか?

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

また、テストに関する純粋な Q/A については、このソリューション$logを参照してください。

于 2014-12-16T05:10:17.720 に答える
0

1.2.2 モックに変更したところ、動作しました。

于 2015-05-13T02:20:08.610 に答える