2016-07-04 5 views
0

각도 1로 작성한 신청서와 카르마와 재스민으로 JSPM을 사용하여 단위 테스트를 작성하고 있습니다.카르마/재스민/JSPM으로 각도 서비스를 단위 테스트하기

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(); 
    }); 
}); 
: 여기
// imports 

class Game { 

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

     // ... 

     this.$rootScope.game = this; 

    } 

} 

내 테스트 파일입니다

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' 
    ] 
}, 

내가 정의 각도 서비스를 테스트하려면, 시작하려면 : 여기

내 카르마 설정 (니혼 전자 : JSPM 섹션)입니다

주된 문제는이 오류가 계속 발생하는 것입니다. 각도 모의의 inject 함수는 작동하지 않는 것 같습니다. 내 변수 game이 정의되어 있지 않아야합니다.

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 
    runCon[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_; 
}));