2016-07-04 11 views
0

私はAngular 1で書かれたアプリケーションとカルマとジャスミンでJSPMを使って単体テストを書いています。ここでカルマ/ジャスミン/ JSPMで角度サービスをユニットテストする

が私のカルマの設定(JSPMセクション)である:

jspm: { 
    meta: { 
     'jspm_packages/github/angular/angular.js': { 
      format: 'global', 
      exports: 'angular' 
     }, 
     'jspm_packages/github/angular/angular-mocks.js': { 
      format: 'global', 
      deps: 'angular' 
     } 
    }, 
    loadFiles: [ 
     'test/**/*.js' 
    ], 
    serveFiles: [ 
     'app/**/*.js' 
    ] 
}, 

開始するには、私は、カスタム角度のサービスをテストしたい:ここ

// imports 

class Game { 

    constructor($rootScope, $http, $timeout, $translate, $location) { 

     // ... 

     this.$rootScope.game = this; 

    } 

} 

を私のテストファイルです:

import { module, inject } from 'angular-mocks'; 

describe('this is a test', function() { 

    beforeEach(module('module-name')); 

    var game; 

    beforeEach(inject(function(_game_) { 
     game = new _game_; 
    })); 

    it('should be defined', function() { 
     expect(game).toBeDefined(); 
    }); 
}); 

主な問題は、このエラーが発生し続けることです。私の変数gameが定義されていないので、angular-mocksのinject関数は機能していないようですが、そうでなければなりません。

PhantomJS 2.1.1 (Windows 8 0.0.0) should be defined FAILED 
    forEach 
    loadModules 
    createInjector 
    workFn 
    {path}/node_modules/karma-jspm/src/adapter.js:61:24 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:1188:34 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:1147:18 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:935:20 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:826:17 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:102:22 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:67:15 
    Expected undefined to be defined. 
    D:/{path}/node_modules/karma-jspm/src/adapter.js:61:24 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:1188:34 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:1147:18 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:935:20 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:826:17 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:102:22 
    [email protected]:/{path}/jspm_packages/system-polyfills.src.js:67:15 

だから私はそれが動作しない理由を理解できません。どんな手掛かり?今では

+0

任意のソリューションを?私も同じ問題に直面しています –

答えて

0

多分遅すぎるが、新しいキーワードを指定せずにそれを試してみてください。このため

beforeEach(inject(function(_game_) { 
    game = _game_; 
})); 
関連する問題