2016-06-25 5 views
1

が定義されていない私は、このサービスAngularjs /カルマ:キャッチされないにReferenceError:注入が

angular.module('common.utils', []) 

.service('Timer', function() { 
    function Timer() { 
     var start = new Date(); 
     return function() { 
      return (new Date()).getTime() - start.getTime(); 
     }; 
    } 
    return Timer; 
}); 

と私はそれのための簡単なテストを書くためにしようとしていました:

describe('common.utils', function() { 

    beforeEach(function() { 
     module('common.utils'); 
    }); 

    it('has a timer service', inject(function(Timer) { 
     expect(Timer).not.toBeNull(); 
    })); 

}); 

をそして私はReferenceError: inject is not definedを得続けます。

私はangular.jsangular-mocks.jsとすべてのアプリファイル(moduleが動作しています...)を含めました。私は問題が何であるか分かりません...

+0

角モックが含まれているかどうかを再度確認してください!それがインジェクション関数であれば、windowオブジェクトで利用できるはずです。 –

+0

それは、私はデバッグで実行するだけです - [ここ](https://imgur.com/RW2XvG6)を参照してください – haki

+0

あなたのカルマのconfファイルを共有できますか? –

答えて

1

私は同じ問題がありました。

ファイルの読み込み順序に問題があることが判明しました。 angular-mocksをロードする前にjasmineをロードする必要があります。

質問で述べたように、次のロード順序は、エラーをスローする。

<script src="/bower_components/angular/angular.js"></script> 
<script src="/bower_components/angular-mocks/angular-mocks.js"></script> 
<script src="/bower_components/jasmine/lib/jasmine-core/jasmine.js"></script> 
<script src="/bower_components/jasmine/lib/jasmine-core/jasmine-html.js"></script> 
<script src="/bower_components/jasmine/lib/jasmine-core/boot.js"></script> 

<!-- include spec files here... --> 
<script src="/spec/test.js"></script> 

ReferenceError: inject is not defined

かなり愚かないくつかのジャスミンの例のコードに含まれる追加のコメントがあるので:

<!-- include source files here... --> 

正しい順番で物事を読み込むように促すコメントを含む正しい読み込み順序。

<script src="/bower_components/jasmine/lib/jasmine-core/jasmine.js"></script> 
<script src="/bower_components/jasmine/lib/jasmine-core/jasmine-html.js"></script> 
<script src="/bower_components/jasmine/lib/jasmine-core/boot.js"></script> 

<!-- include source files here... --> 
<script src="/bower_components/angular/angular.js"></script> 
<script src="/bower_components/angular-mocks/angular-mocks.js"></script> 

<!-- include spec files here... --> 
<script src="/spec/test.js"></script> 
関連する問題