2017-09-28 6 views
0

私のプロジェクトでFUSE Adminアプリケーションを使用しました - http://fuse-angular-material.withinpixels.com/apps/dashboards/projectカルマを使用してangularJS(FUSE Admin)ユニットテストでbeforeEach 'inject'を呼び出せません

私は既に他のサンプルをチェックしており、このコードを別のプロジェクトで実行しても問題ありません。 ITは「beforeEach inject」にサービスやコントローラなどを注入できないので、私は続けることができません。私のテスト。

FUSEでこれを実行している間、何が間違っているのか分かりません。あなたは何か考えていますか?

ここに私のコードです。

SERVICE(サービスは配列のリストを返す)

(function() { 
    'use strict'; 

    angular 
     .module('app.admin.users', []) 
     .config(config) 
     .service('adminUserService', service); 

    function service(msApi) { 
     return { 
      adminUserList: function() { 
       return msApi.resolve('[email protected]'); 
      } 
     }; 
    } 

    function config(msApiProvider) { 
     // calling the API (used dummy data) 
     msApiProvider.register('admin.users.list',['app/data/admin/users/users.json']); 
    } 

})(); 

ユニットテスト

var oDataService; 
var adminUserService; 

describe('unit test ----------------------------', function() { 
    beforeEach(module('app.admin.users')); 

    beforeEach(function() { 
     inject(function ($injector) { 
      adminUserService = $injector.get('adminUserService'); 
      oDataService = adminUserService.adminUserList(); 
     }); 
    }); 

    it("is registered with the module.", function() { 
     expect(oDataService).not.toBe(null); 
    }); 
}); 
+0

なぜbeforeEach内部の「それはブロックがありますか?これは、記述ブロックの子をimmwdiateする必要があります。 –

+0

@varunsinghああ申し訳ありませんが、私の悪い、それは前に外になるはずです。私のコードを編集しました。 –

答えて

0

まず、あなたはbeforeEachブロックの外に「それはブロックを移動する必要があります。 モジュールからサービスを取得するには、2つの方法があります。ここで

手動でモジュールからインジェクターを作成する必要があります。インジェクタ(一般的ではありません)を使用して

  1. 。あなたは第二のアプローチを見ることができるように(より一般的な)を注入使用

    it('test my service', function(){ 
        var $injector = angular.module(['app.admin.users']) 
        var service = injector.get('adminUserService') 
        expect(service.adminUserList()).not.toBe(null); 
    }); 
    
  2. it('test my service', inject(function(adminUserService){ 
        expect(adminUserService.adminUserList()).not.toBe(null); 
    })); 
    

は非常に簡単です。

も、これを参照してください:Injecting Services

+0

あなたのコードを試しましたが、いつも同じエラーが表示されます - https://pastebin.com/HyFEHZFq –

+0

2番目の方法を試しましたか? –

+0

はい、まだ同じです:(。 –

関連する問題